2014-09-24 152 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