0

我有一个使用 XCode4 和 Storyboards 的 iPad 应用程序,它有一个 Tab Bar 控制器和两个 UIViews(其中一个是 KalCalendarController),都在一个工作区中。我已将 Kal 添加到其中,所以现在我在工作区中有两个项目。当我添加 Kal 文档中的 2 行示例代码时,我收到此错误:

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

这是两行代码:

KalViewController *calendar = [[KalViewController alloc] init];
[self.navigationController pushViewController: calendar animated:YES];

我已经查看了几乎所有关于“未找到符号...”的 SO 问题,但没有一个适用于这种特殊情况。我能够让 Kal 示例工作,但不能在工作区中工作。我检查了链接器设置,它们似乎是正确的。我还应该在哪里检查来解决这个问题?

4

1 回答 1

1

假设您已正确链接并包含框架/库,一个问题可能是 Kal 项目的目标设置未在“构建设置”选项卡下的体系结构设置中包含正确的平台。

根据您上面的第一条评论,您也可能根本没有链接/包含 Kal。仅将其拖入工作区是不够的。您需要从主应用程序链接到它(您可以在应用程序目标设置的摘要选项卡下执行此操作)。

这依赖于 Xcode 对依赖项的“自动”检测,这并不总是像宣传的那样工作。在这种情况下,您可能需要在主应用程序的方案中关闭自动依赖项,并在方案的构建设置下手动设置依赖项,以便首先构建 Kal,然后是您的应用程序。

于 2012-06-08T15:09:26.707 回答