首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从我自己的包裹里装奶头?

从我自己的包裹里装奶头?
EN

Stack Overflow用户
提问于 2012-12-11 17:38:18
回答 2查看 5.4K关注 0票数 2

我正在尝试将NIB/XIB文件放入我称为Configuration.bundle的包中。当我试图从包中加载xib时,应用程序会崩溃,因为它找不到xib文件。

代码语言:javascript
运行
复制
NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle]
pathForResource:@"Configuration" ofType:@"bundle"]];
[bundle load];
NSLog(@"bundle: %@", bundle);

我得到了输出

bundle: NSBundle (尚未加载)

“还没装好”这部分让我有点害怕。为什么没装上子弹?

最后,当我尝试用视图控制器加载我的nib时

代码语言:javascript
运行
复制
ConfigViewController *configViewController = [[ConfigViewController alloc] initWithNibName:@"ConfigViewController" bundle:bundle];

我得到了输出

*终止应用程序的原因是:“无法在包中加载NIB:”NSBundle(尚未加载)“,并带有名称”ConfigViewController.xib“。

我已经尝试过了,不管有没有.xib。

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2012-12-11 17:44:23

load方法用于加载框架之类的可执行代码。

您的包不包含任何要加载的可执行文件,因此不需要调用bundle load。

如果包ir的名称正确,那么除了包加载之外,您编写的所有内容都是fine.Anyways,检查路径是否正确,不要嵌套太多的说明:

代码语言:javascript
运行
复制
NSString* path=[ [NSBundle mainBundle] pathForResource: @"Configuration" ofType: @"bundle"];

如果这个字符串是正确的路径,那么您可以确保在不调用bundle load的情况下正确地加载该包。

票数 1
EN

Stack Overflow用户

发布于 2015-03-28 12:58:28

首先,如果没有正确地创建一个包,它将不会被加载。因此,为了创建适当的包,下面是创建包的步骤:

  1. 通过在OS ->框架和库中选择一个名为bundle的templete添加一个新的目标。

  1. 选择新创建的目标并将BaseSDK从OSX更改为最新的iOS。
  2. 在构建短语中添加.xibs、图片或其他要从构建短语中使用的图片或其他资源,->复制捆绑资源。
  3. 在构建短语中添加CoreFoundation框架,与库连接->二进制文件。
  4. 编译目标选择iOS设备。
  5. 将新创建的包从Products目录保存到某个位置。

现在,将该包复制到您的主要项目中。使用以下代码加载包:

代码语言:javascript
运行
复制
NSString *path = [[NSBundle mainBundle] pathForResource:@"BundleName" ofType:@"bundle"];

NSBundle *bundle = [NSBundle bundleWithPath:path];"

现在您已经准备好了新的包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13825531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档