无法从主包中按名称加载 Nib 文件
Posted
技术标签:
【中文标题】无法从主包中按名称加载 Nib 文件【英文标题】:Nib files cannot be loaded by name from main bundle 【发布时间】:2011-11-03 17:11:38 【问题描述】:似乎我的 nib 文件包含在我的测试目标中,它们不存在于主包中,因此当我从主包中按其名称加载 nib 时,我的应用程序崩溃了。我要么需要找到包含我的 nib 文件的正确包,要么需要使用路径加载 nib。
有人有解决方案吗? [NSBundle bundleForClass:[self class]]
不起作用。我认为 nib 和 class 文件不在同一个包中
【问题讨论】:
加载笔尖的代码是什么? 这里的自我对象是谁? @samfisher UIView 的子类 您是否检查了构建阶段以查看 NIB 是否被复制到您的应用程序包中? 【参考方案1】:枚举捆绑包可能会有所帮助
for (NSBundle *bundle in [NSBundle allBundles])
// can look for resources in bundle
locatedPath = [bundle pathForResource:resourcePath ofType:type];
// or maybe trying and load the nib from it?
UINib *nib = [UINib nibWithName:@"Blah" bundle:bundle];
// check for !nil ...
【讨论】:
谢谢,所以我发现崩溃是在 UIFont 上,因为我笔尖中的字体在 OSX 上不存在。所以这帮助我在单元测试上走得更远。 酷 - 这是我用来从我的单元测试中加载资源文件的方法。在我的例子中,我从一个假的网络服务器加载假的响应。很高兴它有帮助。以上是关于无法从主包中按名称加载 Nib 文件的主要内容,如果未能解决你的问题,请参考以下文章