对于与objective-c类别相关的明显错误的情况,我不断得到这个。
注意:这工作正常,然后一夜之间停止工作。
就好像 Xcode 从根本上破坏了它“读取文件系统”的能力,这让我发疯了。任何关于如何强制它...读取文件系统的想法......将不胜感激。
例如:
- 启动 Xcode,编写文件,导入它,使用 Xcode 自动完成。
- cmd-click 导入行,跳转到头文件
- 几次构建之后,Xcode 标记一个警告:,例如“类方法 '+stringFromCGPath:' not found (return type defaults to 'id')”
- 现在,当您在导入行上单击 cmd 时,Xcode 会弹出一个对话框“未找到符号”(世界上最糟糕的对话框?甚至没有确认,它会闪烁并消失)
- 如果您运行该应用程序,它会在该行崩溃,说选择器无法识别
然后,证明FUBAR Xcode是如何的:
- 退出 Xcode,重新启动
- Cmd-click 再次工作
- ...但警告仍然存在,应用程序仍然崩溃
- 几秒钟后,cmd-click 停止工作
注意:我检查过的东西:
- 该文件在项目文件夹中?是的
- .m 文件包含在目标中?是的
- .m 文件是否在要编译的文件列表中?是的
- 做一个 CLEAN ... 然后一个 BUILD?是的
更新:我正在尝试导入的示例标头 - 我已经成功导入了几个月,并且在数百个版本中运行良好,并且我没有更改(使用 SCM 确认):
#import <Foundation/Foundation.h>
#import "CGGeometryExtensions.h"
@interface NSString(CGPath)
+(NSString*) NSStringFromCGPath:(CGPathRef) path;
@end
UPDATE2:实际上,这不会在运行时崩溃——它崩溃是因为在调用“NSStringFromCGPath:”时有一个错字(一个字母是小写的,而它应该是大写的)。但这很难看到,因为 XCode 声称整个头文件不存在 - 尽管如上所述,IMPORT 行是由 Xcode 自动生成的。