我有两个类。这两个类都是相互代表。这给我错误,如“无法找到协议声明”。在网上搜索后,我得出结论,这是循环依赖的情况。如何在单独的头文件中声明协议
要打破这种依赖关系,他们建议的解决方案是在另一个头文件中定义协议。我找不到有关如何执行此操作的任何教程,以及它如何影响我的代码?
这将是非常有帮助的,如果有人创建了一个这样的例子。 在此先感谢。
我有两个类。这两个类都是相互代表。这给我错误,如“无法找到协议声明”。在网上搜索后,我得出结论,这是循环依赖的情况。如何在单独的头文件中声明协议
要打破这种依赖关系,他们建议的解决方案是在另一个头文件中定义协议。我找不到有关如何执行此操作的任何教程,以及它如何影响我的代码?
这将是非常有帮助的,如果有人创建了一个这样的例子。 在此先感谢。
检查@Toro的在这前面的回答太问题 UIViewController calling each other's delegate
如果您正在使用XCode 4
您刚才创建新的文件一如既往,不同的是,你需要选择Objective-C protocol
在Cocoa Touch
部分而不是Objective-C class
或UIViewController subclass
。
您可能使用的其他方法是创建新的Objective-C class
,然后只需删除.m文件manualy并在.h文件中将@interface
更改为@protocol
。
我有一个例子给你..
@class ClassA;
@class ClassAController;
@protocol CreateClassADelegate
-(void)CreateClassA:(ClassAController *)sender didCreateClassA:(ClassA *)ClassAObj;
-(void)CreateClassACancel:(TSInputController *)sender;
@end
希望这会帮助你。
你可以显示你写的代码给对方,这样我就可以根据你的要求编辑你的代码 – Dinakar
通常我们写作@class b而不是#import class b ... – Dinakar
Kindly Display你到目前为止所尝试过的.. –