【发布时间】:2013-09-27 03:14:46
【问题描述】:
我正在尝试使用 Xcode 5 中引入的新 XCTest 框架创建单元测试。我的一个测试用例中有一行如下所示:
XCTAssertEqual([self.client stringEncoding], NSUTF8StringEncoding, …);
当我尝试运行我的测试时,Xcode 吐出这个错误:“对 NSUTF8StringEncoding 的引用不明确。”我可以通过将上面的行更改为:
XCTAssertEqual([self.client stringEncoding], (NSStringEncoding) 4, …);
(这是因为 4 是 NSUTF8StringEncoding 的值。)当我将 NSUTF8StringEncoding 分配给一个局部变量并在 XCTAssertEqual() 调用中使用它时,也会发生这种情况。为什么会出现此错误?
【问题讨论】:
-
该代码对我有用。如果你把 NSUTF8StringEncoding 放回函数中,然后命令单击它,你会看到什么?
-
@bneely:当我按住 Command 键点击 NSUTF8StringEncoding 时,我会直接看到它在
NSString.h第 40 行的声明。它仍然无法编译。 -
您在单元测试目标中链接了哪些框架?您在单元测试实现文件(.m 文件)中包含哪些标头?
-
我是#include
<Foundation/Foundation.h>和<AFNetworking/AFNetworking.h>(后者是我正在测试的框架)。我正在链接 Cocoa、AFNetworking 和 XCTest 框架。还是不行。 -
当您通过 Find Navigator 在项目中搜索 NSUTF8StringEncoding 时,您会看到什么?
标签: xcode xctest nsstringencoding