词法或预处理器问题错误(未找到 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 &lt;UIKit/UIKit.h&gt;,直到我意识到它是为 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' 文件未找到

未找到致命错误文件/词法预处理器错误 IOS

XCTest |词法或预处理器问题:未找到 MyProject-Swift.h

Accounts 框架的词法或预处理器问题

找不到词法或预处理器问题“ParseFacebookUtils/PFFacebookUtils.h”文件