【问题标题】:Storing photos on device: Local Database vs. Gallery在设备上存储照片:本地数据库与图库
【发布时间】:2015-06-13 15:43:57
【问题描述】:

我正在开发一个向其他用户发布照片的 iOS 应用,而发送的照片并未存储在服务器上。 用户必须拥有其照片的历史记录和相关信息。

我应该将照片存储在本地数据库还是照片库中? 我担心如果照片存储在图库中,用户可能会在不了解的情况下删除它们,这会删除应用程序的历史记录。

谢谢。

【问题讨论】:

  • 在你的应用程序的文档目录中加强它们怎么样?
  • @rckoenes 你能解释一下为什么它更好吗?
  • 您将图像保存在应用程序文档目录中,并将文件名保存在某种本地数据库(或核心数据)中。这使得加载更容易,并且不会产生将图像存储在数据库中的开销。
  • @rckoenes 我明白了。谢谢。
  • @rckoenes 如果总大小变得非常大,操作系统是否有可能删除文件?

标签: ios local-storage


【解决方案1】:

绝对将照片存储在本地文件系统或数据存储解决方案中。否则,照片将在您不知情甚至用户不知道照片的重要性的情况下被共享/删除。这也更好,因为您不想让用户只有在他们指定的情况下才能将它们存储在他们的画廊中。

对于任何应用,您都不希望最终控制所发生的事情,以便引导用户沿着特定路径前进。通过自己存储照片,您可以控制数据,并可以根据需要将控制权交给用户。

永远不要相信用户会做你期望的事情。或者正如我最喜欢的谚语所说,“总是为最愚蠢的用户设计,你就会为所有人设计”。

【讨论】:

  • 数据库是保存图像的糟糕选择。只需将图像存储为文件。
  • 我指的不是 SQL 或其他数据库,而是图像的本地存储概念。我非常清楚将照片或其他媒体数据存储在数据库中并不是一个好主意。我会让编辑更清楚。谢谢。
  • 我应该将它们存储在应用程序的目录中,并在本地数据库中管理相关信息?
  • 无论如何你可以管理文件就足够了。我假设您的应用程序会引用文件名,您可以根据需要在本地系统中搜索文件。这取决于您的系统是如何设计的,但是只要您有名称,就可以找到该文件。
【解决方案2】:

我的推荐是 Core Data,因为它在 iOS 应用程序上运行良好。你可以在网上找到很多教程(例如http://www.raywenderlich.com/)。从 iOS 8 开始,有很多改进,比如批处理作业。

【讨论】:

  • 数据库是保存图像的糟糕选择。只需将图像存储为文件。
  • 根据我的经验,这取决于。如果有些图像不大,您可以在 Core 数据中使用 BLOB。当然,使用数据库来存储 2-3 MB 大小的 100 个文件,内存是昂贵的。最后,这一切都取决于各种用例。对于很多图像,最好简单地保存图像名称并像你说的那样使用它
  • 图片大约 1MB,但如果用户不从应用中删除它们,它们可能会累积。
  • 如果是这种情况,请遵循@cmw2379 解决方案。你可能也想看看这个:stackoverflow.com/questions/14531912/…
猜你喜欢
  • 2012-04-19
  • 2019-08-10
  • 2019-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 2012-09-15
  • 1970-01-01
相关资源
最近更新 更多