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