知识点小记

156 阅读1分钟
1. conformsToProtocol:@protocol()
    用来检查类/实例是否遵守了指定协议,与是否实现协议方法无关
2. respondsToSelector:@selector()
    用于判断某个类/实例是否实现了某个方法,与是否遵守协议无关。
    代理模式中,委托方定义了相关协议,并且抛出一个delegate property,
    被委托方遵守该协议,并且将delegate = self; 这样委托方可以通过调用
    delegate respondsToSelector:@selector(selName)来判断被委托方self
    是否实现了selName方法,如果实现了,可以[delegate selName]来达到委托方的目的。
3. conformsToProtocol 与 class_conformsToProtocol
   a.父类遵循protocol,子类也遵循protocol,所以子类conformsToProtocol为YES
   b.class_conformsToProtocol为运行时方法,只判断当前class有没有遵循protocol,和父类无关。所以当父类遵循protocol,
   子类没有加<Protocol>的时候,class_conformsToProtocol返回NO