0
对于我目前的项目,我有一些协议,我宣布在实施这项协议的类类别:类别对实现协议的类有什么影响?
@interface MyClass (ImplementingMyProtocol) <MyProtocol>
@end
@implementation
// Implementation of protocol
@end
我认为有两种可能这个方案如何可以解释:
- 的类别仅适用于符合
MyProtocol
的MyClass
子类。 - 该分类适用于
MyClass
的所有实例,并按类别实施MyProtocol
。
这两种可能性究竟适用于哪一种?我不知道编译器是如何解释这个声明的,我没有找到任何有关该主题的帮助或文档。我想我知道如何处理这两个选项,尽管如此,我需要知道哪一个实际上是编译器解释我的代码的方式。
但是“conformsToProtocol”-Method呢?这不是运行时知道的一些协议相关信息吗?我可以看到你的观点,即使用Objective CI可以将任何类型的消息发送给任何对象并希望得到答复,但我认为可以在运行时使用协议(使用上述方法)对对象执行一些额外的检查,无论是是否它可以给我一个错误发送一些消息给一个对象... –
是的....“你可以问一个类在运行时,但objC doesnt” - 运行时无关 –
检查将是YES给出的例子 –