新手问题。如何在应用程序测试期间访问资源
我知道,在模拟器中测试我的iPhone应用程序时,并非所有资源文件都在[NSBundle mainBundle]
中可用。我知道解决方案是指[NSBundle bundleForClass:[self class]]
而不是mainBundle。
问题,我有:当应用程序部署和它是很好的做法
是指的
[NSBundle bundleForClass:[self class]]
有效?它是很好的做法,在应用程序委托定义...
NSBundle *appBundle = [NSBundle bundleForClass:[self class]]; // or, for in final app // NSBundle *appBundle = [NSBundle mainBundle];
...和使用appBundle
整个代码?否则,有太多的地方,我指的是[NSBundle mainBundle]
,我将不得不改变为bundleForClass:[self Class]
。
如果我使用这个appBundle定义,我应该做其他事情吗?也许在应用程序委托结束之前释放appBundle?
谢谢!
苏莱曼
在什么情况下你看到'mainBundle'不工作?如果它在模拟器不起作用,那么它不应该工作.. – Wain 2015-03-03 13:30:22
我猜你没有将资源添加到应用程序包,这就是为什么他们没有显示出来。该包中的任何资源都位于mainBundle中。要为资源添加或删除资源,请单击左上角的小文件夹(文件夹视图),然后单击顶部的项目,然后单击目标(如果您有多个),然后显示“复制软件包资源”选项卡。从你所描述的内容来看,我猜测你想要的资源不会在那里。 – 2015-03-03 14:11:49
@Wain,当在模拟器中运行应用程序时,并不是所有资源都在主包中找到。 – Sleiman 2015-03-03 14:54:15