class_addProtocol
的{{3}}非常基本,并没有真正解释如何使用它。
我的解释是,当我想在运行时向类添加协议时,我应该调用class_addMethod
来添加协议中的每个方法,然后调用class_addProtocol
。我真正理解的是 if 和为什么我需要调用class_addProtocol
。当然,通过添加所有协议方法,类已经符合协议,那么class_addProtocol
实际上做了什么?
答案 0 :(得分:3)
它允许选择器-conformsToProtocol:
起作用。在某些情况下(您可能有多个代表,可能需要响应某些事情而不是其他人),了解对象是否响应协议是有用的,而不仅仅是您请求的单个方法。
大部分时间这不是问题,因为大部分时间-respondsToSelector:
已足够,但这是一个很方便的好工具。
请注意,您几乎不应该使用class_conformsToProtocol
而不是-conformsToProtocol
,因为它不会检查超类,并且可能会导致问题。