2011-05-20 94 views
0

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

另一种方法是,我没有在资源文件夹中任何东西,我从服务器上下载的所有图像上的应用程序启动,并将它们存储到文件目录,然后,下载修改过的文件,在随后的应用程序启动。在这里,我正在消除资源文件夹检查,如果图像存在与否,我的应用程序包大小将减少。

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

什么会是一个更好的方法或全部是从性能上看类似有什么建议?

回答

0

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

0

不用担心,性能将不会是一个问题,除非你使用一个特别不明智的图像查找算法。

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

0

在实现自己的东西之前,我建议您查看一下图片缓存。即从EnormEgo EGOImageView。

我已经在一些应用,这都依赖于从网址抓取图像中使用它。它为你处理所有事情,你只需要设置一个“背景”图像来显示它,然后在背景中抓取基于URL的图像。第二次使用它时,它立即可用。肯定得到我的投票,易于使用...

p.s.它可以免费使用