iphone - Xcode 4 测试构建类冲突

标签 iphone objective-c ios xcode4

大家好,我是 Xcode/Cocoa/Objective C 的新手,有一个烦人的问题我似乎无法找到。我有一个程序,其中包含一些类和一组内置的单元测试,在我创建项目时选中了 Xcode“包含单元测试”选项。在大多数情况下,一切正常,但是当我运行测试时,我看到以下错误:

objc[12505]: Class [class foo] is implemented in both /Users/[me]/Library/Application Support/iPhone Simulator/4.3/Applications/1F5222ED-0A3C-41BC-AFA3-CB8FC744EFCE/[app name].app/[app name] and /Users/[me]/Library/Developer/Xcode/DerivedData/[app name]-eumytpkyfitihadpqeyxjpwapxoa/Build/Products/Debug-iphonesimulator/[app name]Tests.octest/[app name]Tests. One of the two will be used. Which one is undefined.

查看构建测试目标的日志显示,Xcode 正在为测试目标编译 [class foo],但没有编译测试程序使用的其他类(如果我的术语不正确,请见谅)。

我的 [app name]Tests.m 文件的顶部如下:

#import "[app name]Tests.h

#import "[class x].h"
#import "[class y].h"
#import "[class z].h"
#import "[class a].h"
#import "[class foo].h"

[app name]Tests.m 使用了上述所有类,[class foo] 没有我能想到的真正意义,除了它可能是第一个创建的。 我尝试移动 #import "[class foo].h" 声明而不做任何更改。 我试过重命名 [class foo]、清理产品并在不做任何更改的情况下重建。

查看Finder中的文件,所有的程序类都在[app name]的根目录下,只有两个测试文件在[app name]Tests的根目录下,我觉得应该是这样.

通常运行测试实际上会工作,即使有这个错误,但有时它不会或断点会在 [class foo] 中执行不可预测,这真的很烦人。如有任何想法或建议,我们将不胜感激。

谢谢。

最佳答案

哎,不知道能不能解决你的问题,看来你得重建你的derived data文件夹了。

我在升级后也遇到了一些旧项目类的问题。我通过从模拟器中删除应用程序解决了这个问题,清理项目并转到/Users/[me]/Library/Developer/Xcode/DerivedData/的 derivedData 文件夹

您可以删除包含您的应用程序名称的整个文件夹。 Xcode 将自行重建它。 另一种有时有效的方法是使用 Xcode 4 创建一个新项目并将项目的所有文件移动到这个新项目。 这将确保您不会遇到 Xcode4 中更新的项目设置的问题。

关于iphone - Xcode 4 测试构建类冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5898175/

相关文章:

ios - 如何从连接的 iOS 设备获取电池充电周期?

iphone - 是否可以在不使用 UITableViewDelegate 的情况下调整 UITableViewCell 的大小?

iphone - 重新开始并升级商店中的应用程序(新项目 - CoreData)

ios - 试图检测在 scenekit 上点击了哪个节点

ios - 如何在 iOS 中解析复杂的 JSON 数据

ios - 如何在发送到服务器(Ruby on Rails)时对表情符号进行编码?

ios - 如何在 Object C 中使用 block 调用方法?

ios - CocoaPods:如何让多个工作区引用相同的 Pod

ios - Swift UI Collection View - 如何将 "segued"用户输入显示到 Cell 中?

iphone - 从 facebook API 获取 birthday=Null