Swift XCTest 命名空间错误?

Posted

技术标签:

【中文标题】Swift XCTest 命名空间错误?【英文标题】:Swift XCTest namespace bug? 【发布时间】:2015-05-19 20:56:39 【问题描述】:

我想知道我是否在 Swift 1.2/XCode 6.4(6E23) 中发现了命名空间/XCTest 错误:

我有一个带有公共函数 encode 的 .swift 文件,它需要几个参数。我还有一个 XCTest 文件来测试encode 函数。

我的 XCTest 文件可以很好地导入我的代码 - 我可以从中调用公共函数,甚至当我开始编写它时,给我带来麻烦的函数 encode 也能很好地自动完成。但是,当我尝试编译它时,我可以看到它失败(带有“调用中的额外参数”),因为编译器认为我正在调用 Foundation.encode 而不是我自己的。

更改它的名称使其工作正常,但这不是重点; Swift 应该优先考虑您的模块而不是系统的,所以这是一个错误还是我遗漏了什么?

【问题讨论】:

【参考方案1】:

可能是这个问题:

声明encode 的swift 文件是否将Target Membership 设置为您的测试包和主包?如果没有,请选择 swift 文件,然后在右侧菜单中的 Target Membership 下,也选择您的测试包(它应该是一个复选标记)。

【讨论】:

确实如此,唉,这没什么区别。我有一个演示问题的虚拟项目here 我已经在这个here上提交了一个雷达

以上是关于Swift XCTest 命名空间错误?的主要内容,如果未能解决你的问题,请参考以下文章

Swift开发第八篇——方法嵌套&命名空间

如何更改 Swift 类的命名空间?

Swift 创建一个自己的命名空间

Swift 创建一个自己的命名空间

Swift 命名空间形式扩展的实现

iOS Swift Core Data 生成带有项目命名空间的 NSManagedObject