在测试 XCTestCase 时,我似乎遇到了这个奇怪的问题。我创建了一个单元测试包,并将我的主应用程序设置为“目标”;现在我可以很好地针对我的核心数据 NSManagedObjects 编写测试,但是如果我在我的应用程序中包含任何不是 NSManagedObject 的其他内容,我会收到链接错误:
架构 x86_64 的未定义符号:“_OBJC_CLASS_$_iCloudListener”,引用自:SLTestToDoWithRepeatInterval.o 中的 objc-class-ref ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v查看调用)
这只发生在非 NSManagedObjects 上。并且 iCloudListener 肯定在主应用程序目标的编译源中。问题是,虽然我可以将这个特定的 iCloudListener 类添加到测试目标 -> 构建阶段 -> 编译源列表中,这将使这个特定的链接错误消失,但它引入了新的错误,因为它开始给出链接错误关于 iCLoudListener 类的所有头文件;如果我开始添加这些,它们需要越来越多的文件,以至于我必须将几乎所有的代码都包含到测试目标“编译源”部分中。
我在这里做错了吗?是否存在可能导致 Xcode 忽略非 NSManagedObject 类的设置?