2011-04-28 64 views
2

我有一个iPhone应用程序自定义类,Detail,我创建的UIViewController的子类。Xcode:很奇怪的错误subclassing我自己的类

我需要做一个Detail的子类,我想称之为ActivityDetail。所以我写了我的ActivityDetail.h文件中的以下内容:

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

@interface ActivityDetail : Detail { 

} 

@end 

的问题是,我得到一个编译器错误,告诉我:

error: cannot find interface declaration for 'Detail', superclass of 'ActivityDetail'

而且奇怪的是:我可以改变从DetailUIView(例如)的超类,编译出现许多错误(显然),然后再将超类更改为Detail,并且一切正常!但是,如果我然后改变任何类别Detail类问题从一开始就回来...

我该如何解决这个问题?

回答

8

。相反,你应该做同样的事情:

页眉

#import <UIKit/UIKit.h> 

@class Detail; 

@interface ActivityDetail : Detail { 

} 

@end 

实施

#import "ActivityDetail.h" 
#import "Detail.h" 

@implementation ActivityDetail 

@end 

这允许您的头“知道”其他类而不强制该头的所有“导入器”也导入它导入的所有内容。


Here is a great reference question,和一个伟大的答案,关于@class#import使用。

0

您是否在声明细节的地方导入.h?

#import "Detail.h" 
8

您正在导入的详细信息为Dettaglio.h。可能编译器在意大利语中不流利。

+0

爱双关! – jini 2011-04-28 18:39:04

0

要么#进口“Detail.h”或子类从Dettaglio(取决于哪一个您的详细信息类实际上命名。建议不导入你的头文件超出了预设的基础类或UIKit的进口