Swift - 获取NSBundle用于测试目标?

时间:2014-08-31 22:00:34

标签: swift nsbundle

在Objective C中,每当我必须访问测试包时,我都会调用

[NSBundle bundleForClass:[ClassInTestTarget class]];

bundleForClass在Swift中不可用,那么如何访问测试包呢?

我需要这个的原因是,为了编写我正在研究的框架的测试,我必须使用内存核心数据堆栈。最初所有资源都包含在主目标和测试目标中,但之后我将所有这些测试助手移动到仅测试目标,现在下面的代码返回nil,这使我的所有测试失败

let modelURL = NSBundle.mainBundle().URLForResource("Model", withExtension: "momd")

1 个答案:

答案 0 :(得分:44)

相应的Swift代码是

// Swift 3 and later:
Bundle(for: ClassInTestTarget.self)

// Swift 1, 2:
NSBundle(forClass: ClassInTestTarget.self)

ClassInTestTarget.self返回" ClassInTestTarget"的类对象类。