0

对于与objective-c类别相关的明显错误的情况,我不断得到这个。

注意:这工作正常,然后一夜之间停止工作。

就好像 Xcode 从根本上破坏了它“读取文件系统”的能力,这让我发疯了。任何关于如何强制它...读取文件系统的想法......将不胜感激。

例如:

  1. 启动 Xcode,编写文件,导入它,使用 Xcode 自动完成。
  2. cmd-click 导入行,跳转到头文件
  3. 几次构建之后,Xcode 标记一个警告:,例如“类方法 '+stringFromCGPath:' not found (return type defaults to 'id')”
  4. 现在,当您在导入行上单击 cmd 时,Xcode 会弹出一个对话框“未找到符号”(世界上最糟糕的对话框?甚至没有确认,它会闪烁并消失)
  5. 如果您运行该应用程序,它会在该行崩溃,说选择器无法识别

然后,证明FUBAR Xcode是如何的:

  1. 退出 Xcode,重新启动
  2. Cmd-click 再次工作
  3. ...但警告仍然存在,应用程序仍然崩溃
  4. 几秒钟后,cmd-click 停止工作

注意:我检查过的东西:

  1. 该文件在项目文件夹中?是的
  2. .m 文件包含在目标中?是的
  3. .m 文件是否在要编译的文件列表中?是的
  4. 做一个 CLEAN ... 然后一个 BUILD?是的

更新:我正在尝试导入的示例标头 - 我已经成功导入了几个月,并且在数百个版本中运行良好,并且我没有更改(使用 SCM 确认):

#import <Foundation/Foundation.h>

#import "CGGeometryExtensions.h"

@interface NSString(CGPath)

+(NSString*) NSStringFromCGPath:(CGPathRef) path;

@end

UPDATE2:实际上,这不会在运行时崩溃——它崩溃是因为在调用“NSStringFromCGPath:”时有一个错字(一个字母是小写的,而它应该是大写的)。但这很难看到,因为 XCode 声称整个头文件不存在 - 尽管如上所述,IMPORT 行是由 Xcode 自动生成的。

4

1 回答 1

0

听起来好像您的索引器可能有问题。您的项目中有多个目标,或者工作区中有多个项目吗?如果是这样,请确保它们完全干净地构建 - 索引一个目标的失败可能会扰乱另一个目标的代码完成。

您也可以尝试删除项目的DerivedData文件夹

于 2012-05-29T14:57:26.127 回答