对于我当前的项目,我有一些协议,我在实现此协议的类上声明了一个类别:
@interface MyClass (ImplementingMyProtocol) <MyProtocol>
@end
@implementation
// Implementation of protocol
@end
我认为有两种可能性可以解释这个方案:
MyClass
的{{1}}子类。MyProtocol
的所有实例,并按类别实施MyClass
。这两种可能性中的哪一种实际适用?我不知道编译器如何解释这个声明,我没有找到关于该主题的任何帮助或文档。我想我知道如何处理这两个选项,但是要做到这一点我需要知道编译器解释我的代码的方式实际上是哪一个。
答案 0 :(得分:1)
以上的效果将是xcode已知类MyClass打算实现给定的协议MyProtocol 它也将在运行时符合它
协议只是'metainfo' - 它不是运行时需要的......运行时只知道我有这个类,嘿我应该调用这个方法
它不检查某些协议的符合性
协议只适用于IDE的类型检查(它可以给你警告),你可以在运行时询问一个类,但是objC没有
所以他们根本不需要执行:D