我正在用 Objective-C 重写一个 Java 库,我遇到了一个奇怪的情况。我有两个相互导入的类。这是一个循环依赖。 Objective-C 支持这种情况吗?如果没有,您建议我如何重写它?
最佳答案
导入类不是继承。 Objective-C 不允许循环继承,但它允许循环依赖。您要做的是使用 @class
指令在彼此的 header 中声明类,并让每个类的实现文件导入另一个的 header 。即:
A类.h
@class ClassB;
@interface ClassA : NSObject {
ClassB *foo;
}
@end
A类.m
#import "ClassB.h"
@implementation ClassA
// Whatever goes here
@end
B类.h
@class ClassA;
@interface ClassB : NSObject {
ClassA *foo;
}
@end
B类.m
#import "ClassA.h"
@implementation ClassB
// Whatever goes here
@end
关于objective-c - Objective-C 是否允许循环依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5425465/