【问题标题】:Clang Error: Reference to NSUTF8StringEncoding is ambiguousClang 错误:对 NSUTF8StringEncoding 的引用不明确
【发布时间】: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


【解决方案1】:

请在您的文件中导入以下框架。

#import <UIKit/UIKit.h>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 2018-07-02
    • 2021-01-07
    • 1970-01-01
    相关资源
    最近更新 更多