找不到'UIResponder'的接口声明

时间:2010-06-07 21:20:06

标签: iphone objective-c

我在尝试编译我从之前的开发人员继承的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可能搞砸了吗?

1 个答案:

答案 0 :(得分:0)

执行“清理”(在“构建”菜单下),并确保选中“还删除预编译的标题”。