我创建了一个带有单元测试目标的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"]];
所以我不确定为什么它没有隐含地接受捆绑。我需要更改哪些配置。任何帮助,将不胜感激。谢谢!
答案 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))
实际上,您需要将情节提要捆绑到框架中