我有两节课。这两个类都是彼此的代表。这给了我一个错误,如“无法找到协议声明”。在网上搜索之后,我得出的结论是,这是循环依赖的情况。
为了打破这种依赖关系,他们建议的解决方案是在另一个头文件中定义协议。我找不到任何关于如何做到这一点的教程以及它将如何影响我的代码?
答案 0 :(得分:2)
我有一个例子给你..
@class ClassA;
@class ClassAController;
@protocol CreateClassADelegate
-(void)CreateClassA:(ClassAController *)sender didCreateClassA:(ClassA *)ClassAObj;
-(void)CreateClassACancel:(TSInputController *)sender;
@end
答案 1 :(得分:0)
在之前的SO问题中查看@Toro的答案 UIViewController calling each other's delegate
答案 2 :(得分:0)
如果您使用的是XCode 4
,您只是一如既往地创建新文件,不同之处在于您需要在Objective-C protocol
部分中选择Cocoa Touch
而不是Objective-C class
或{ {1}}。
您可以使用的其他方法是创建新的UIViewController subclass
,然后手动删除.m文件,并在.h文件中将Objective-C class
更改为@interface
。