在运行时替换捆绑中的图像

时间:2011-01-21 22:42:20

标签: objective-c ios cocoa-touch nsbundle

我可以在运行时替换捆绑中的图像吗?基本上,我有一些图像是我的包的一部分,如果图像有任何变化,我也将从服务器获取它们。我可以在运行时将它们放在捆绑包中,这样我就不需要更改我的代码来选择图像了吗?

2 个答案:

答案 0 :(得分:8)

您无法更改应用程序包的内容。

然而,可以将图像存储在应用程序的文档文件夹中。然后,您将能够覆盖这些图像,以防需要更改。

有两种方法可以实现这一目标:

  1. 启动时,检查文档目录中是否存在图像文件。如果没有,请将捆绑图像复制到文档文件夹。
  2. 每次加载图像时,请检查文档目录中是否存在图像。如果是,请加载它,否则加载捆绑中的那个。这样可以避免复制数据,从而减少磁盘使用量,但实施起来还要多。

答案 1 :(得分:2)

您无法在运行时更改捆绑包。这将阻止应用程序运行,因为配置文件将不再有效。你会发现大量的代码如何处理iOS在stackoverflow上提供的沙箱文件夹。

修改
有用的问题/答案