我正在使用Objective-C重写一个Java库,遇到了一个奇怪的情况。我有两个相互依赖的类,这是一种循环依赖。Objective-C是否支持这种情况?如果不支持,您建议如何重写它?
我正在使用Objective-C重写一个Java库,遇到了一个奇怪的情况。我有两个相互依赖的类,这是一种循环依赖。Objective-C是否支持这种情况?如果不支持,您建议如何重写它?
导入一个类不是继承。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