我需要为使用Core Data的现有应用添加视频和音频录制功能。我一直在想我应该将它们保存到文件系统并使用Core Data引用它们,但我想知道我是否可以将它们作为可转换属性放入Core Data并完全忽略文件系统?
我的直觉是,这是一个真正糟糕的想法™。我确实喜欢使用Core Data的轻松和增值。但我已经尝试搜索'iphone核心数据视频',但这只是返回大量的核心数据教程。
答案 0 :(得分:15)
不要将二进制数据放入Core Data中。将它们存储在文件系统上,并在Core Data中存储对文件系统位置的引用。
如果将它们存储在Core Data中,则可能会导致缓存并导致可怕的性能,更不用说在尝试发送大量数据时可能会耗尽内存。
答案 1 :(得分:2)
当使用coredata保存二进制数据时,Coredata具有“允许外部存储”选项,该数据库将自动将大于1mb的文件存储到磁盘。
但是,这个问题与这些问题非常相似:
和
Storing large (e.g. image/movie) files in Core Data on the iPhone
与选定的答案相反,只要没有大量的视频或照片,Core Data就应该能够保持良好的性能。