1

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

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

我的项目正在使用没有资产目录的情节提要并针对 iOS 7。我尝试在 NSBundle 上调整以下方法来捕获从情节提要中加载的图像,但没有一个被命中(至少对于 png 文件):

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

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

有任何想法吗?

4

1 回答 1

0

我放弃了尝试拦截对单个图像文件的请求NSBundle并切换到资产目录系统。中的URLForResource方法NSBundle被调用并且总是寻找 Assets.car,简单地从我自己的包中返回 Assets.car 导致我的自定义图像被加载。这适用于[UIImage imagedNamed:]从笔尖加载以及从笔尖加载。

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

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

两条路径都必须是绝对路径,否则会actool失败。

于 2013-12-04T09:37:20.927 回答