【问题标题】:Nib files cannot be loaded by name from main bundle无法从主包中按名称加载 Nib 文件
【发布时间】:2011-11-03 17:11:38
【问题描述】:

似乎我的 nib 文件包含在我的测试目标中,它们不存在于主包中,因此当我从主包中按其名称加载 nib 时,我的应用程序崩溃了。我要么需要找到包含我的 nib 文件的正确包,要么需要使用路径加载 nib。

有人有解决方案吗? [NSBundle bundleForClass:[self class]] 不起作用。我认为 nib 和 class 文件不在同一个包中

【问题讨论】:

  • 加载笔尖的代码是什么?
  • 这里的自我对象是谁?
  • @samfisher UIView 的子类
  • 您是否检查了构建阶段以查看 NIB 是否被复制到您的应用程序包中?

标签: objective-c xcode unit-testing nsbundle octest


【解决方案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 上不存在。所以这帮助我在单元测试上走得更远。
  • 酷 - 这是我用来从我的单元测试中加载资源文件的方法。在我的例子中,我从一个假的网络服务器加载假的响应。很高兴它有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
  • 2011-07-21
  • 2012-06-03
  • 2011-07-03
  • 1970-01-01
相关资源
最近更新 更多