我的iPhone应用程序包含自定义类Detail
,是我创建的UIViewController
的子类。
我需要创建Detail
的子类,我想将其称为ActivityDetail
。所以我在ActivityDetail.h文件中写了以下内容:
#import <UIKit/UIKit.h>
#import "Detail.h"
@interface ActivityDetail : Detail {
}
@end
问题是我收到编译错误告诉我:
错误:找不到界面 “细节”的声明,超类 'ActivityDetail'
奇怪的是:我可以将超类从Detail
更改为UIView
(例如),编译得到很多错误(显然),然后将超类更改为Detail
再一次,一切正常!但是,如果我随后改变Detail
类的任何内容,问题就会从一开始就回来......
我该如何解决这个问题?
答案 0 :(得分:8)
嗯,您要将详细信息导入为Dettaglio.h
。可能编译器不会说流利的意大利语。
答案 1 :(得分:8)
建议不要在头文件中导入超出默认Foundation或UIKit导入的类。相反,你应该做类似的事情:
标题
#import <UIKit/UIKit.h>
@class Detail;
@interface ActivityDetail : Detail {
}
@end
实施
#import "ActivityDetail.h"
#import "Detail.h"
@implementation ActivityDetail
@end
这允许您的标题“知道”其他类,而不强制该标题的所有“导入程序”也导入它导入的所有内容。
@class
和#import
的使用情况,Here is a great reference question以及一个很好的答案。
答案 2 :(得分:0)
您是否导入.h,其中详细声明是什么?
#import "Detail.h"
答案 3 :(得分:0)
#import“Detail.h”或Dettaglio的子类(取决于您的Detail类实际命名的那个。