'NSBundle mainBundle'pathForResource奇怪的行为

时间:2017-02-26 01:29:18

标签: ios objective-c nsbundle

我无法弄清楚pathForResource如何运作的任何押韵或理由......或更恰当的,不是。

我的应用程序中有一堆笔尖,它们都在/ Build Phases / Copy Bundle Resources中。

它们也在Target Membership标签File Inspector上正确勾选。

为了简洁,我在这里只展示了2个案例。 当我到达我使用pathForResource的代码部分时,我会得到任意且不一致的结果。即使我的所有笔尖都被命名为____。xib,在某些情况下,我从pathForResource获得结果的唯一方法是,如果我要求xml,有时我要求{{ 1}}

任何人都知道为什么这种行为不一致?

enter image description here

1 个答案:

答案 0 :(得分:2)

这些结果对我来说似乎并不特别令人惊讶或不一致。

.xib文件是NIB的源文件。不应将直接复制到应用中。它们在构建时编译为.nib文件,并且将那些.nib文件复制到应用程序中。您不应期望pathForResource:... ofType:@"xib"能够在您的应用中找到.xib文件。如果是这样,你就会以某种方式搞砸了应用程序的构建。 .xib文件在运行时无用。

可能与此无关,您在Copy Bundle Resources构建阶段有一个文件TabSale.xml。该文件直接复制。如果您没有打算复制原始XML文件 - 例如,如果该源文件应该在构建时转换为其他内容 - 那么您需要找出原因它被复制了。如果由于某种原因它只是TabSale.xib的虚假副本,你应该摆脱它。