2014-09-24 207 views
35

我已經將XCode從5.1.1升級到最近的XCode 6.0.1。現在,每次我要定義一個新的UIImage對象我得到這個錯誤:未知類型名稱'UIImage'

Unknown type name 'UIImage'

代碼:
1.創建一個新的項目
2. Image View控件添加到故事板
3.參考的Image View加入IBOutlet中
4.添加新的類文件
5的下面一行代碼添加到新的類的頭文件中:

@property (strong, nonatomic) UIImage *background;

頭文件(.h)中的內容:

 
#import <Foundation/Foundation.h> 

@interface CCTile : NSObject 

@property (strong, nonatomic) NSString *story; 
@property (strong, nonatomic) UIImage *background; // Error: Unknown type name 'UIImage' 

@end 

但是,如果我添加#import <UIKit/UIKit.h>的頭文件(以上)似乎一切都OK! 任何想法,請問我在這裏錯過了什麼?這是XCode頭文件的變化!

+0

沒有導入UIKit,編譯器不知道UIImage是什麼。 UIImage在UIKit中定義,因此您需要導入它。可能Xcode沒有自動導入,因爲你從NSObject繼承而不是UIViewController或其子類 – 2014-09-26 11:21:25

+0

XCode 5並不需要這個#import,正如我記得! UIImage以某種方式知道,也許是因爲它在(main.m)中定義,然而XCode 6卻是這樣!那麼,我認爲XCode 6中會有這種變化。 – aenawi 2014-09-27 02:10:29

回答

81

我也有同樣的問題,並使用

#import <UIKit/UIKit.h> 

但是固定它,我周圍挖一些比較XCode中做了一個項目6與Xcode 5相比,我注意到Xcode 6沒有創建前綴頭文件。前綴頭文件被隱式地導入到每個類中,並且前綴頭文件(.pch)包括UIKit以及Foundation。

要創建一個pch文件,請轉到文件 - >新建 - >文件 - >其他 - > PCH文件。將該名稱編輯爲「YourProject-prefix.pch」。添加以下內容:

#ifdef __OBJC__ 
#import <UIKit/UIKit.h> 
#import <Foundation/Foundation.h> 
#endif 

然後您需要設置構建設置。轉到您的項目 - >建立設置 - >搜索頂部:前綴頭。

您將看到預編譯前綴頭 - >更改爲是。 此外,正下方是Prefix Header。添加您的前綴頭的路徑。應該像:「YourProject/YourProject-prefix.pch」。

+1

偉大的東西,像這樣,你不必考慮在每個相關文件中手動導入UIKit。謝謝! – 2015-03-18 04:44:20

+0

我面臨同樣的問題,但在一個pod文件中。現在我無法更改pod文件(因爲它會在下次更新時更改它)。我想使用Xcode 6提供的新Modulus而不是pch文件。 N – 2015-12-03 11:55:26

+0

對我非常有幫助。 – Anju 2016-04-13 07:18:27

10

未知類型名稱'UIImage'或任何需要的UI對象。

#import(UIKit)這將解決您的問題。這對我很有用......

+2

我注意到了!我想知道爲什麼這會發生在XCode 6上!在XCode 5中,我不記得我必須爲普通UI對象導入任何額外的頭文件。 – aenawi 2014-09-26 11:09:36

6

跑到同一個問題。通過做

#import <UIKit/UIKit.h> 

榮譽蘋果解決它:P

+0

這是100%正確的,它適用於我。 – 2014-10-29 21:14:25