【发布时间】:2011-07-22 11:31:19
【问题描述】:
我正在用 Objective-C 重写一个 Java 库,我遇到了一个奇怪的情况。我有两个相互导入的类。这是一个循环依赖。 Objective-C 支持这种情况吗?如果没有,你建议我如何重写它?
【问题讨论】:
-
我已经改写了标题并重新标记了问题。
标签: objective-c circular-dependency
我正在用 Objective-C 重写一个 Java 库,我遇到了一个奇怪的情况。我有两个相互导入的类。这是一个循环依赖。 Objective-C 支持这种情况吗?如果没有,你建议我如何重写它?
【问题讨论】:
标签: objective-c circular-dependency
导入类不是继承。 Objective-C 不允许循环继承,但它允许循环依赖。您要做的是使用@class 指令在彼此的头文件中声明类,并让每个类的实现文件导入对方的头文件。也就是说:
@class ClassB;
@interface ClassA : NSObject {
ClassB *foo;
}
@end
#import "ClassB.h"
@implementation ClassA
// Whatever goes here
@end
@class ClassA;
@interface ClassB : NSObject {
ClassA *foo;
}
@end
#import "ClassA.h"
@implementation ClassB
// Whatever goes here
@end
【讨论】: