【问题标题】:Better way of updating images bundled with the app更新与应用程序捆绑的图像的更好方法
【发布时间】:2011-08-29 18:35:55
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: iphone ipad resourcebundle nsdocumentdirectory


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        附言免费使用

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-25
          • 2015-07-24
          • 2017-06-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多