【发布时间】:2012-02-10 12:52:21
【问题描述】:
我在尝试为从以前的开发人员那里继承的 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 编码非常陌生。
编辑:
刚刚尝试清除所有目标 - 它实际上发现了一个额外的警告,但仍然有与上述相同的错误。
我的 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 搞砸了?
【问题讨论】:
-
EINetIPhone_Prefix.pch 中的语法错误,您可以发布该文件的内容吗?
-
我也这么认为。你完成了 Clean All Targets 吗?
-
查看我的前缀文件的编辑。清理所有目标似乎没有帮助:(
标签: iphone objective-c