Xcode:非常奇怪的错误继承我自己的类

时间:2011-04-28 17:41:15

标签: iphone xcode subclassing

我的iPhone应用程序包含自定义类Detail,是我创建的UIViewController的子类。

我需要创建Detail的子类,我想将其称为ActivityDetail。所以我在ActivityDetail.h文件中写了以下内容:

#import <UIKit/UIKit.h>
#import "Detail.h"

@interface ActivityDetail : Detail {

}

@end

问题是我收到编译错误告诉我:

  

错误:找不到界面   “细节”的声明,超类   'ActivityDetail'

奇怪的是:我可以将超类从Detail更改为UIView(例如),编译得到很多错误(显然),然后将超类更改为Detail再一次,一切正常!但是,如果我随后改变Detail类的任何内容,问题就会从一开始就回来......

我该如何解决这个问题?

4 个答案:

答案 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类实际命名的那个。