gpt4 book ai didi

objective-c - class_addProtocol 在 Objective-C 中实际上做了什么?

转载 作者:行者123 更新时间:2023-12-04 05:36:56 26 4
gpt4 key购买 nike

documentation对于 class_addProtocol非常基础,并没有真正解释如何使用它。

我的解释是,当我想在运行时向类添加协议(protocol)时,我应该调用 class_addMethod从协议(protocol)中添加每个方法,然后调用 class_addProtocol .我不太明白是否以及为什么需要调用 class_addProtocol .当然,通过添加所有协议(protocol)方法,该类已经符合协议(protocol),那么 class_addProtocol 是什么?实际上呢?

最佳答案

它允许选择器 -conformsToProtocol:去工作。在某些情况下(您可能有多个委托(delegate),他们可能需要响应某些事情而不是其他事情),了解对象是否响应协议(protocol)是有用的,而不仅仅是您请求的单个方法。

大多数时候这不是问题,因为大多数时候 -respondsToSelector:已经足够了,但它是一个好用的工具。

请注意,您几乎不应该使用 class_conformsToProtocol超过 -conformsToProtocol ,因为这不会检查父类(super class),并且可能会导致问题。

关于objective-c - class_addProtocol 在 Objective-C 中实际上做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11813030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com