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



我有两个类。这两个类都是彼此的委托。这给了我错误,如"找不到协议声明"。在网上搜索后,我得出结论,这是循环依赖的情况。

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

我给你举个例子…

@class ClassA;
@class ClassAController;
@protocol CreateClassADelegate
-(void)CreateClassA:(ClassAController *)sender didCreateClassA:(ClassA *)ClassAObj;
-(void)CreateClassACancel:(TSInputController *)sender;
@end

查看@Toro在上一个问题中的答案UIViewController调用彼此's委托

如果您使用的是XCode 4,您只需像往常一样创建新文件,不同之处在于您需要在Cocoa Touch部分选择Objective-C protocol,而不是Objective-C classUIViewController subclass
您可以使用的另一种方法是创建新的Objective-C class,然后手动删除。m文件,并将。h文件中的@interface更改为@protocol

最新更新