词法或预处理器问题错误(未找到 UIKit/UIKit.h 文件)
Posted
技术标签:
【中文标题】词法或预处理器问题错误(未找到 UIKit/UIKit.h 文件)【英文标题】:Lexical or Preprocessor Issue error (UIKit/UIKit.h file not found) 【发布时间】:2012-08-20 14:13:37 【问题描述】:我已阅读有关词法和预处理器问题的另一个问题,并尝试使用有助于解决他们问题的方法。不幸的是,这些解决方案都没有帮助解决这个问题。这个错误突然出现,我不确定除了读取的内容之外我还能做什么来解决这个问题。请帮忙!
这是我得到错误的代码:
#import <UIKit/UIKit.h>
@interface scanshootViewController : UIViewController
<UINavigationControllerDelegate, UIImagePickerControllerDelegate>
IBOutlet UIImageView *imageView;
UIImagePickerController *imagePicker;
@property (nonatomic, retain) UIImageView *imageView;
-(IBAction) btnClicked:(id) sender;
@end
【问题讨论】:
确切的错误是什么?是什么工具发出的? 并且UIKit.framework
仍然为Xcode 项目配置?
@ D.Shawley:这是我运行编译器时出现的确切错误。词法或预处理器错误(未找到 UIKit/UIKit.h 文件!)
@***foe :是的,它仍然是为 Xcode 项目配置的。我还阅读删除然后重新添加它,我这样做了。这没有帮助。
@Coder404:是的,确切地说,我使用的是 Xcode 4.4。我应该从应用商店获取错误或更新以纠正此问题吗?
【参考方案1】:
尝试为您的应用删除“派生数据”文件夹 - 您可以在管理器的“项目”选项卡中找到它。您可以在 finder 中找到,在 Xcode 中关闭项目,删除文件夹,重新打开项目,然后尝试构建。如果这样做不关闭项目,请删除项目文件中以您的用户 ID 开头的每个目录(或只是重命名它们),重新打开,重建。
编辑:更多建议
1) 查看 Target 的“Use Standard System Header Directory Searching”并确保其为YES。
2) 在您的 .pch 文件中,您应该有如下内容:
#import <Availability.h>
#ifndef __IPHONE_4_0
#warning "This project uses features only available in ios SDK 4.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
尝试在 OBJC 下的一行中添加“Hello”,以验证您在构建时是否到达此处(并得到一个致命错误) - 这将证明 OBJC 已定义。
3) 创建一个全新的项目 - iOS 单视图。确保它可以构建并运行(如果不是 Xcode 是 Frogged)。然后在您的项目旁边打开该项目的构建设置,并逐行查看顶部,看看有什么不同。
4) 如果一切都失败了,请将您的项目移动到另一个目录,创建一个新目录,然后将所有文件重新添加到新项目中。这显然是最糟糕的解决方案。
【讨论】:
嗨大卫,我尝试了你的建议,但不幸的是它对我不起作用。我仍然遇到那个愚蠢的错误。 嗨大卫,在 .pch 文件中我也有错误,甚至在添加你好之前。我想我会照你说的做,然后创建一个新项目。不管怎么说,还是要谢谢你。 : (【参考方案2】:进入你项目的Frameworks文件夹,右键点击UIKit.Framework > show in finder。
如果 Headers 文件夹是空的,这意味着您没有正确的文件,我刚刚意识到某些 Clean Apps 会从您的计算机中删除 .h 文件(...是的,信不信由你);
解决方案:
1) 从其他 XCode 安装中复制整个 iPhoneOS.platform 和 iPhoneSimulator.platform 文件夹
2) 重新安装 XCode (ups...)
【讨论】:
这也发生在我身上。但不确定是什么原因造成的。【参考方案3】:我遇到了同样的问题。原因是我不小心将“Build Settings”中的“Base SDK”设置为“Current OS X”而不是“Latest iOS”。当我将其设置回“最新 iOS”时,构建错误消失了。
【讨论】:
【参考方案4】:我在为 iOS 构建的框架目标上遇到了同样的问题。我通过将构建配置中的“Base SDK”设置为合理的值来解决这个问题。
【讨论】:
【参考方案5】:FWIW,我在尝试改进 github 上的一些代码时遇到了类似的问题。
我不明白为什么它找不到UIColor
和#import <UIKit/UIKit.h>
,直到我意识到它是为 OSX 构建的,而不是为 iOS 构建的!!!
所以我把它放在 .h 文件的开头:
#import "TargetConditionals.h"
#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
#import <UIKit/UIKit.h>
#define HXColor UIColor
#else
#import <Cocoa/Cocoa.h>
#define HXColor NSColor
#endif
@interface HXColor (HexColorAddition)
HTH
【讨论】:
以上是关于词法或预处理器问题错误(未找到 UIKit/UIKit.h 文件)的主要内容,如果未能解决你的问题,请参考以下文章
词法或预处理器问题 - 未找到 event2/event-config.h 文件
如何修复错误 Xcode。词法预处理器问题 Cordova/CDVJpegHeaderWriter.h' 文件未找到