常见iOS面试题 之 怎么判断一个类是否遵循某个协议
答案:
使用方法conformsToProtocol.
调用例子: BOOL isConform = [Student conformsToProtocol:@protocol(UIScrollViewDelegate)];
或者:
Student* student =[[Student alloc] init];
BOOL isConform = [student conformsToProtocol:@protocol(UIScrollViewDelegate)];
都可以.
这个方法既是NSObject的一个类方法,也是定义在NSObject Protocol中的一个方法.
方法定义:
+ (BOOL)conformsToProtocol:(Protocol *)protocol;
具体的说明直接去看SDK文档就可以了.
扩散一下,一般实际应用中遇到的更多的是一个类的实例是否能够响应某个方法,一般用
- (BOOL)respondsToSelector:(SEL)aSelector;
就可以了;
如果只是想知道某个类是否响应其中一个方法,则用
+ (BOOL)instancesRespondToSelector:(SEL)aSelector;.