Max*_*kov 2 containers objective-c circular-dependency
我有一个像这样定义的协议:
@protocol Container
- (BOOL)putStuff: (Stuff *) theStuff;
@end
Run Code Online (Sandbox Code Playgroud)
以及以下声明的类:
@interface Stuff : NSObject {
}
@property(readwrite,nonatomic,retain) NSObject <Container> * containerHoldingMe;
@end
Run Code Online (Sandbox Code Playgroud)
我在putStuff声明中得到一个错误 - "预期类型".但是,如果我将方法的参数更改为NSObject,它编译正常 - 所以,我认为Objective C不允许循环依赖.
在我正在工作的实际课程中,我想实现两个 - 但是,如何在没有它的情况下实现这样的逻辑?
当编译器评估您的Container协议时,它不知道您的Stuff类.您可以Stuff通过前向声明让编译器了解您的类:
@class Stuff;
@protocol Container
- (BOOL)putStuff: (Stuff *) theStuff;
@end
Run Code Online (Sandbox Code Playgroud)