可能重复:
cannot find interface declaration for ‘AbstractPickerView’,superclass of ‘AttackLayer’
有3个头文件(超类和2个子类):
// A.h
@interface A : NSObject
@end
// A1.h
#import "A.h"
@interface A1 : A
@end
// A2.h
#import "A.h"
@interface A2 : A
@end
我想导入类A
的所有子类。
所以我在A.h中添加了2 #import
,如下所示:
// A.h
#import "A1.h" // added
#import "A2.h" // added
@interface A : NSObject
@end
但是在添加它们之后,发生了以下编译错误。
Cannot find interface declaration for 'A', superclas of 'A1'
Cannot find interface declaration for 'A', superclas of 'A2'
我知道可以通过创建和导入以下文件来解决此错误。
// ASubclasses.h
#import "A1.h"
#import "A2.h"
但我认为#import A.h
比#import ASubclasses.h
导入子类更简单
如果我可以使用#import A.h
导入子类,我不需要创建另一个文件(ASubclasses.h)。
有没有办法使用#import A.h
导入A的所有子类?
或者一般来说,如何导入类的所有子类?
答案 0 :(得分:2)
你得到的错误是因为#import循环。当两个头文件相互导入时会发生这种情况。您可以使用@class声明该类,然后在实现文件中导入头文件。