首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >宏NSLocalizedString的Xcode 8模糊扩展

宏NSLocalizedString的Xcode 8模糊扩展
EN

Stack Overflow用户
提问于 2016-09-22 09:44:53
回答 2查看 4.5K关注 0票数 9

我的单元测试.pch文件中有以下内容,可以让我的单元测试为本地化文件找到正确的包,在升级到Xcode8之前,这个包运行良好。

代码语言:javascript
复制
#undef NSLocalizedString
#define NSLocalizedString(key, comment) [[NSBundle bundleWithIdentifier:@"Tests-Unit"] localizedStringForKey:(key) value:@"" table:nil]

现在,我收到警告

代码语言:javascript
复制
Ambiguous expansion of macro NSLocalizedString 

这将解释为什么我的单元测试失败了,因为他们再也找不到本地化的字符串值了。

有什么不对吗?我现在有什么需要改变的吗?

编辑:,我有一种感觉,它与我所有的源文件都在2中,目标是,即一个用于项目,一个用于单元测试,这就是我们设置它的方式。我正在努力清除这个问题,并从单元测试目标中删除我的所有源文件,并添加了

代码语言:javascript
复制
@testable import ProjectName

改为一个单元测试文件,以便能够访问我的代码进行测试,但我现在

代码语言:javascript
复制
File 'MyFile.swift' is part of module 'ProjectName'; ignoring import.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-08 11:13:55

我终于让一切都恢复正常了。

让我们假设我们的项目名为Panda,它由Obj和Swift文件组成。所有这些文件都在我们的PandaPandaTests目标中。

步骤1:确保所有文件都具有正确的目标成员资格,即Panda目标:只有源文件、开发框架、图像等和PandaTests目标:只有测试文件、测试框架、模拟数据等

步骤2:确保您的Panda项目将构建设置->启用可测试性设置为Yes

步骤3:确保您的PandaTests项目将构建设置->产品模块名设置为PandaTests

步骤4:通过按住选项按钮,然后单击Product,做一个很好的清洁。您应该会看到一个清洁生成文件夹选项。

步骤5:用于Swift单元测试,添加@testable import Panda。由于我们现在已经从PandaTests目标中删除了所有源代码文件,所以单元测试需要一种访问项目文件的方法。这使我们的Swift单元测试能够访问我们的Swift文件和包含在我们的Panda-Bridging-Header.h.中的那些Obj-C文件

票数 2
EN

Stack Overflow用户

发布于 2016-11-08 02:03:11

在项目生成设置中,将-Wno-ambiguous-macro添加到其他C标志

它解决了这个问题(警告已经消失),但不确定副作用是什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39635624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档