如何在单独的头文件中声明协议

时间:2011-07-21 09:37:28

标签: objective-c xcode

我有两节课。这两个类都是彼此的代表。这给了我一个错误,如“无法找到协议声明”。在网上搜索之后,我得出的结论是,这是循环依赖的情况。

为了打破这种依赖关系,他们建议的解决方案是在另一个头文件中定义协议。我找不到任何关于如何做到这一点的教程以及它将如何影响我的代码?

3 个答案:

答案 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