2013-04-04 101 views
0

目前,我一直在使用[NSBundle mainBundle] loadNibNamed:以应用程序的形式加载笔尖到我的应用程序。我想要做的只是将所有的笔尖包含在子文件夹(及其参考图像)中,但似乎几乎不可能加载这些笔尖。 loadNibNamed不允许指定路径。我做了大量的搜索,找不到合适的方法。我试过的其他东西都会给出例外。 我试过从文件中加载数据并将其解压缩,但它说这是一个难以理解的存档。 UINibNSBundle具有相同的问题。从路径中加载笔尖

必须有一种方法来指定文件路径,就像加载任何其他文件一样。

我想最后的内容是NSArray就像返回loadNibNamed:一样。

任何洞察将有所帮助。

我得到的最接近的是使用[NSBundle bundleWithPath:]并指定完整路径。它表示路径尚未加载,并抛出异常。为什么没有加载?

+0

这是子还是你的应用程序包里面? – CodaFi 2013-04-04 22:35:04

+0

该文件夹位于软件包根目录中。它也在Copy Bundle Resources下。所有其他文件夹在同一根加载罚款。当我在.app里面查看新文件夹时,它的所有内容都在那里。笔尖文件是相同的。我刚刚创建了一个新文件夹,移动了笔尖,然后用Xcode重新链接了资源。当我意识到loadNibNamed:没​​有使用路径时,我开始搜索并尝试各种解决方案。但到目前为止没有任何工作。 – user1137704 2013-04-04 22:40:05

+0

你的路是什么? – ingaham 2013-04-04 23:11:44

回答

2

我想你会得到“尚未加载”,因为你没有加载bundle [bundle load]。还要检查名称区分大小写,因为模拟器通常不区分大小写,而Device不是。试试这个,看看你如何去。

问候, 拉维

+0

@ user1137704,如果这有助于解决问题,请接受答案。问候, – 2013-04-05 02:39:45

+0

我相信这是做到这一点的正确方法。但是,我的笔尖只是在一个目录中,而不是一个捆绑包。当我调用[bundle load]时,它返回false,并且仍然“尚未加载”。在这种情况下可以将目录作为NSBundle处理吗?抱歉耽搁了。 – user1137704 2013-04-05 07:04:51

+0

@ user1137704,如果你的笔尖在同一个项目或捆绑包中,那么你不需要指定任何路径。你只需要用它的名字叫Nib。项目子目录仅用于可视化表示,但它们都暴露于相同的可执行文件路径。 – 2013-04-05 07:17:25