There is exactly NSObject +conformsToProtocol ; protocol negotiation is declared as part of @interface , so it is not specific to each instance. For example,
if( [[self class] conformsToProtocol:@protocol(UIScrollViewDelegate)]) NSLog(@"I claim to conform to UIScrollViewDelegate");
No need to abandon C-level execution methods at least for the first question of your question. There is nothing in NSObject for a list of supported protocols.
Tommy source share