如何为iPhone创建仅资源包?

3
我们正在尝试以语言特定的方式提供我们的nibs。由于几个不同的原因,这将对我们有所帮助。
我的问题集中在如何设置仅限资源的bundle上。
1.当我通过“新项目 - 框架和库 - bundle”菜单在xcode中添加一个新的bundle时,xcode会添加一个新的xcodeproj文件。这样做是否正确?我认为bundle只是一个具有.bundle扩展名的目录。
2.如果我只想在bundle中拥有nib文件,我是否仍需要可执行文件和info.plist文件?
到目前为止,我已经手动创建了一个bundle目录并添加了nib文件。我可以使用...来访问它。
NSBundle bundleWithPath

我不确定它是否被正确加载,但是bundleWithPath方法不会返回nil。

但是当我尝试从bundle中打开nib文件时,我会收到以下错误:

* 由于未捕获的异常而终止应用程序 'NSInternalInco nsistencyException',原因:无法在bundle中加载NIB: 'NSBundle (not yet loaded)',名称为'Nib'

我已将bundle添加到“Copy Bundle Resources”中。

感谢任何信息。我相信我正在把它搞得比应该更难。

编辑:我回去做了一个测试,添加了下面这行代码来查找xib而不是nib。它适用于xib但不适用于nib。我认为这意味着xib可能没有被编译。

[languageBundle pathForResource:@"TestNib" ofType:@"xib"];

1个回答

0
  1. 不,这是不正确的。您应该将新目标添加到当前项目中,而不是创建新项目。

  2. 您不需要可执行文件,但是您可能需要一个Info.plist才能成为一个合适的包(它可能并不是严格必要的,但有一个不会损害)。

现在,您将nib文件放在捆绑包中而不是.lproj目录中,是否有原因?此外,在我们提供进一步帮助之前,您需要展示一些实际代码。


感谢您的回复。我想我并不完全理解目标和捆绑是如何工作的。我可能会再做一些研究,希望能够回来给出更有见地的回答。再次感谢。 - Matt Eaton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接