【问题标题】:iOS Is it acceptable storing hundreds of photos in Core Data?iOS 可以在 Core Data 中存储数百张照片吗?
【发布时间】:2014-05-21 01:13:25
【问题描述】:

我正在开发一个简单的照片编辑应用程序。我想要一个日志功能,让用户查看他们编辑的每张照片。一些高级用户可能拥有数百(或可能数千)张照片。

我正在使用 Core Data 来保存照片。我担心的是数百张 640x640 的照片可能会使文档目录文件大小相当大(附带问题:我的假设是我的核心数据存储保存到我的应用程序文档目录中。这是真的吗?)。

在应用程序中本地存储这么多照片是否有问题,还是我过于谨慎?我可以存储多少文件大小有限制吗?

【问题讨论】:

  • 只是想知道将图像本身存储在文档目录中并且仅将图像文件路径保存在 coredata 中是否有意义。
  • 一般来说@rckoenes 有最好的解决方案。使用数据库(在本例中为 CoreData)来存储将要搜索的数据。将大数据存储在数据库指向的文件中。
  • 对不起,我应该更清楚。我实际上正在这样做。将照片保存在文档目录中,然后将文件路径存储在核心数据中。
  • @AndrewDavis 你的问题有什么更新吗?

标签: ios core-data nsdocumentdirectory


【解决方案1】:

在文档目录中存储数据没有限制(假设您使用文档作为数据,核心数据作为路径)。在this 问题中对此进行了讨论。除此之外,你会没事的,默认情况下处理文档目录中的数据相当快。

问题是 - 您的用户会对您的应用越来越大感到满意吗?您能否让他们选择将图片存储在服务器上并让他们设置缓存大小?

或者 - 如果您遇到问题,您可以将其存储在照片中 library...

【讨论】:

  • 谢谢。服务器端存储不是一种选择。成百上千张照片是边缘案例,所以我正在为极端情况做准备。我可能会对可以存储的照片总数实施上限。
  • 我刚刚有一个想法,我可以在照片应用程序中创建一个相册并用照片填充它(而不是使用我的应用程序文档目录)。然后我的应用可以拉入这些照片(如果可以从特定相册填充 UITableview)?
  • 当然可以 - 使用ALAssetsLibrary。问题是数据掌握在用户手中 - 他/她可以删除整个相册/重命名它/从您创建的相册中删除一些图片......所以文件管理将无法控制......
【解决方案2】:

数据库位置在方法 NSPersistentStoreCoordinator:addPersistentStoreWithType: 中指定。我认为苹果将其生成在您的文档目录中。所以你在 Documents 目录中假设它是正确的。

关于你的主要问题 我倾向于认为可以按照您所说的去做(对核心数据没有限制),但这可能会给用户带来不好的体验,因为它可能会导致您的应用程序以不受控制的方式增长。因此同步可能会变慢,并且您的应用程序可能不会对用户表现得礼貌。 因此,如果您的高级用户将拥有 1000 张照片,我认为这不是一个好主意

也许考虑引入应用可以处理的最大图像配额,并从您指定为路径的 URL 加载/下载图像。 使用 SD 卡作为备份选项怎么样? 嗯,很多工作我不羡慕你。也许其他人做过类似的事情,他们可以给你一个开始。

我咨询了以下有关堆栈溢出的先前答案,这些答案可以解决您提出的问题,也许它们可以帮助您。

Core Data - Storing Images (iPhone)

Storing photos and videos in Core Data?

App Updates, NSURL, and Documents Directory

CoreData (for iphone) storing images

Storing large (e.g. image/movie) files in Core Data on the iPhone

Size limit of my ios app particularly Core Data

希望这能有所帮助。

【讨论】:

    猜你喜欢
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2011-07-13
    • 2014-11-08
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多