如何在“取消删除”文件后正确编译Xcode?

时间:2013-03-29 03:52:32

标签: ios objective-c xcode

我不小心从项目中删除了一组文件(.h,.m,.xib)。

从备份中将它们添加回项目后,我收到错误编译。看起来链接器试图引用已删除源中的旧.o文件:

Undefined symbols for architecture i386:   "_OBJC_CLASS_$_SNDYTheUndeletedViewController", referenced from:
      objc-class-ref in SNDYParentViewController.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

如何清除此错误?我试过了:

  • 做一个“干净”
  • 重新启动Xcode
  • 强制重新编译父视图控制器(通过更改一些代码,然后再更改)
  • 删除派生数据
  • 将Derived Data文件夹从“Default”更改为“Relative”

我最后一次这样做,我刚刚创建了一个具有不同名称的新视图控制器。我想避免这种情况,实际上只是解决了这个问题。

2 个答案:

答案 0 :(得分:0)

您可以尝试从xcode存储库中删除项目引用。

转到文件 - >源控制 - >存储库..

删除存储库和项目下的所有项目引用。

答案 1 :(得分:0)

正如rmaddy在我的问题评论中所述,重置每个已恢复文件的目标成员资格:

  1. 突出显示Project Navigator(cmd-1)中的文件。
  2. 打开“文件检查器实用程序”窗格(cmd-opt-1)。
  3. 在窗格的“目标成员资格”部分中,单击目标的复选框。