2011-04-28 63 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的進口