我在尝试编译我从之前的开发人员继承的iPhone应用程序的代码时遇到了这个问题。我在几个论坛上讨论过,似乎罪魁祸首可能是某个地方的循环#import。
首先 - 有没有简单的方法来查找是否是这种情况/找到循环所在的文件?
第二 - 它绝对可能不是问题所在。这是完整错误(截断文件路径,因此更容易在此处查看):
包含在文件中
from [...]/Frameworks/UIKit.framework/Headers/UIView.h:9,
from [...]/Frameworks/UIKit.framework/Headers/UIActivityIndicatorView.h:8,
from [...]/Frameworks/UIKit.framework/Headers/UIKit.h:11,
from /Users/wbs/Documents/EINetIPhone/EINetIPhone_Prefix.pch:13:
[...]/Frameworks/UIKit.framework/Headers/UIResponder.h:15: error: expected ')' before 'UIResponder'
[...]/Frameworks/UIKit.framework/Headers/UIResponder.h:17: error: expected '{' before '-' token
[...]/Frameworks/UIKit.framework/Headers/UIResponder.h:42: warning: '@end' must appear in an @implementation context
[...]/Frameworks/UIKit.framework/Headers/UIResponder.h:51: error: expected ':' before ';' token
[...]/Frameworks/UIKit.framework/Headers/UIResponder.h:58: error: cannot find interface declaration for 'UIResponder'
正如您所看到的,除此之外还有其他错误。这些似乎是简单的语法错误,但是,它们出现在Apple的一个UIKit文件中(不是我自己的),因此我怀疑Apple的代码是否真正产生了这些错误。
我很难过如何解决这个问题。如果有人对我可以尝试的事情或方法/地点有任何想法,我可以获得有关问题的更多信息,我真的很感激。我是Obj-C和iPhone编码的新手。
编辑:
刚试过Clean All Targets - 它实际上发现了一个额外的警告,但仍然有与上面相同的错误。
我的EINetIPhone_Prefix.pch:
//
// Prefix header for all source files of the 'EINetIPhone' target in the 'EINetIPhone' project
//
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iPhone SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#endif
编辑#2:
有趣的是,我尝试从我的前缀文件中删除UIKit导入并将其放入需要它的特定.m文件中。我仍然得到相同的错误,但现在它们出现在试图导入UIKit.h的每个文件中。 UIKit可能搞砸了吗?
答案 0 :(得分:0)
执行“清理”(在“构建”菜单下),并确保选中“还删除预编译的标题”。