“InvalidArgumentException”无法在捆绑NSBundle中找到名为“Details”的故事板

时间:2016-09-30 06:58:06

标签: ios objective-c xcode unit-testing

我创建了一个带有单元测试目标的Cocoa Touch框架。现在我正在尝试构建和运行我的单元测试用例,其中包含启动故事板的代码。但它无法加载故事板文件并将错误抛给我。

"InvalidArgumentException" Could not find a storyboard named "Details" in bundle NSBundle </Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Agents> (loaded).

这是我的代码

UIStoryboard *sb =
  [UIStoryboard storyboardWithName:"Details" bundle:nil];

当我明确提供bundleID时,它正在工作,如

UIStoryboard *sb =
[UIStoryboard storyboardWithName:"Details" bundle:[NSBundle bundleWithIdentifier:@"com.abc.xyz"]];

所以我不确定为什么它没有隐含地接受捆绑。我需要更改哪些配置。任何帮助,将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

将您的Details. storyboard文件添加到&#34;复制捆绑资源&#34;

转到Xcode项目图标并导航至:Targets > Build Phases > Copy Bundle Resources

点击底部的+按钮添加情节提要文件。

<强> OR

如果选中,则检查故事板的文件检查器中的目标成员身份。确保检查了该值。

答案 1 :(得分:0)

尝试一下(在我的obj c中可能是错误的):

UIStoryboard *sb =
  [UIStoryboard storyboardWithName:"Details" bundle: Bundle(for: Self.self)]

迅速:

let storyboard = UIStoryboard(name: "Details", bundle: Bundle(for: Self.self))

实际上,您需要将情节提要捆绑到框架中