新手问题。
我知道在模拟器中测试我的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包含捆绑中的所有内容,即目标(应用程序)的资源。XCode尝试将所有资产添加到捆绑软件中,但有时会丢失,或者有时您可能无意中告诉XCode不要将其复制到捆绑软件中。重要的是要记住,仅在发布之前将应用程序需要的内容放入捆绑包中(如果您有测试文件,请将其删除),因为它们会使您的应用程序变大,从而耗尽用户的存储和带宽。
要添加/删除/检查捆绑包中的内容,请转到文件/组检查器,即XCode左上角的小文件夹图标。选择项目,最顶层的条目。如果有多个目标,请选择一个目标。单击“构建阶段”,然后向下滚动到“复制捆绑包资源”。在这里,您可以管理复制到捆绑软件中的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句