Xcode4:带有类别:...类方法...未找到(返回类型默认为'id')

时间:2012-05-29 14:42:07

标签: objective-c xcode4

对于与客观c类别相关的明显错误的情况,我会继续这样做。

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

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

e.g:

  1. 使用Xcode自动完成功能启动Xcode,编写文件,导入它。
  2. cmd-单击导入行,然后跳转到头文件
  3. 稍后的几个版本,Xcode标记一个警告:,例如“类方法'+ stringFromCGPath:'未找到(返回类型默认为'id')”
  4. 现在当您点击导入行时,Xcode会弹出一个对话框“未找到符号”(世界上最差的对话框?甚至没有确认,它会闪烁并消失)
  5. 如果您运行应用程序,它会在该行崩溃,说选择器无法识别
  6. 然后,要证明FUBAR Xcode是如何:

    1. 退出Xcode,重启
    2. Cmd-click再次正常工作
    3. ...但警告仍然存在,应用程序仍然崩溃
    4. 几秒钟后,cmd-click停止工作
    5. 注意:我检查过的事情:

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

      5. 更新:我正在尝试导入的示例标题 - 我已成功导入数月,并在数百个版本中工作正常,而且我没有更改(使用SCM确认):

        #import <Foundation/Foundation.h>
        
        #import "CGGeometryExtensions.h"
        
        @interface NSString(CGPath)
        
        +(NSString*) NSStringFromCGPath:(CGPathRef) path;
        
        @end
        

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

1 个答案:

答案 0 :(得分:0)

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

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