0

在我们的 iOS 应用程序中,资源包中有近百个图像文件。现在我们想让它们基于网络,因为图像可能随时更改(更新/不再需要/添加)。我们正在讨论哪种方法是最佳的。根据我的阅读,我了解资源包在设备上不可编辑。所以,当我启动应用程序时,我会从服务器检查是否有任何图像更新。如果是这样,我将下载更改后的图像,然后将它们保存到文档目录。然后在应用程序中,对于每张图片,我基本上必须检查它是否在资源包中,然后从那里抓取它。否则从文档目录中选择它并显示它。

另一种方法是我在资源文件夹中没有任何内容,我从服务器下载应用程序启动时的所有图像并将它们存储到文档目录,然后在后续应用程序启动时下载更改的文件。在这里,如果图像存在或不存在,我将取消对资源文件夹的检查,并且我的应用程序包大小将减小。

第三种方法是在第一次启动时将文件从我的资源目录复制到文档目录,然后从文档目录继续。

从性能的角度来看,关于什么是更好的方法或所有这些方法都相似的任何建议?

4

3 回答 3

0

不用担心,性能不会成为问题,除非您使用特别不明智的图像查找算法。

对于如此少量的文件,文件系统遍历应该非常快。

于 2011-05-20T15:38:54.237 回答
0

IMO,选项三在消除不必要的代码和预加载尽可能多的数据之间提供了最佳平衡。您不想让用户在应用第一次启动时等待 100 张图片下载,因此请尽可能多地预加载。复制代码很简单,只会使用一次。这样就消除了您必须使用其他选项进行的运行时检查。

于 2011-05-20T15:39:33.380 回答
0

在自己实现某些东西之前,我建议先看看现成的图像缓存。即来自 EnormEgo 的EGOImageView

我在几个依赖于从 URL 抓取图像的应用程序中使用了它。它为您处理所有事情,您只需设置一个“背景”图像供它显示,同时它会在后台抓取基于 URL 的图像。第二次使用时,立即可用。绝对让我对易用性投票...

ps 可以免费使用

于 2011-05-20T15:47:45.583 回答