滑动NSBundle以获得可重新启动的演示



我正在尝试构建一个应用程序(不适用于应用商店分发),该应用程序可以通过下载包含图像和字符串文件的捆绑包来重新绑定。

对于本地化,我在使用localizedStringForKey:value:table:加载自定义字符串时没有遇到任何问题,但是对于图像,我遇到了更多的问题。

我的项目使用的是没有资产目录的故事板,目标是iOS 7。我曾尝试在NSBundle上使用以下方法来捕捉从故事板加载的图像,但没有一种方法被命中(至少对于png文件):

URLForResource:withExtension:
URLForResource:withExtension:subdirectory:localization:
URLsForResourcesWithExtension:subdirectory:

我确实看到有人试图加载.car文件(这是资产目录格式),但这些文件返回了nil URL。我还尝试过刷新上述方法的pathForResource:版本,但没有捕获到新的调用。

有什么想法吗?

我放弃了拦截NSBundle中单个图像文件的请求,转而使用资产目录系统。NSBundle中的URLForResource方法被调用,并且总是查找Assets.car,只需从我自己的捆绑包中返回Assets.car就可以加载我的自定义图像。这适用于[UIImage imagedNamed:]以及从笔尖加载。

为了完整起见,要生成资产目录,您需要使用XCode.app中的actool。我使用actool作为模拟器,并从构建日志中复制了命令(该目录也适用于我的iPhone 5S…):

actool --platform iphonesimulator --minimum-deployment-target 7.0 --target-device iphone --compress-pngs --compile  [path_to_output_bundle] [path_to_xcassets]

这两条路径都必须是绝对路径,否则CCD_ 11将失败。

相关内容

  • 没有找到相关文章

最新更新