我知道我可以在我的.h文件中定义delgate,如下所示:
@property (nonatomic, weak) id <MyClassDelegate> delegate;
我发现这个声明也有效:
@property (nonatomic, weak) id delegate;
我使用xcode 4.6和最新的sdk。我的问题是:编译器会自动在.h文件中查找“MyClassDelegate”吗?
答案 0 :(得分:1)
您可以用任何一种方式定义委托实例变量,但第一种方法更好。
第一种方式,编译器会去找协议(你需要导入它定义的.h文件),然后它会检查:
第二种方式,编译器不进行检查,并将所有内容留给运行时。
协议不需要在具有特定名称的文件中定义,只需要在尝试使用它的文件中定义,或者在其中定义的文件需要#import
编
答案 1 :(得分:1)
您可以使用协议进行正式授权(第1版),不使用协议进行非正式授权(第2版)。两者在语法上都是正确的。