如何直接保存到持久存储,而不将数据保存到内存中

Posted

技术标签:

【中文标题】如何直接保存到持久存储,而不将数据保存到内存中【英文标题】:How to save directly to the persistent store, without holding the data into memory 【发布时间】:2012-03-31 18:52:16 【问题描述】:

我有一个应用程序,它从服务器下载一些文档并将它们保存到持久存储 (Sqlite) 中。我将文档数据保存在NSManagedObjectNSData 属性中,每次下载新文档时,基本上应用程序都会将数据保存到持久存储中,但也会将其保存在内存中,这是我不想要的。有没有办法强制故障?不知何故,我想释放内存,并将数据仅保留在数据库中。希望有道理,我是 Core Data 的初学者。

【问题讨论】:

【参考方案1】:

您可以通过调用 refreshObject:mergeChanges: 将 NSManagedObject 变为故障。

【讨论】:

+1 这是强制NSManagedObject 出错的正确方法。 这与“允许外部存储”相结合为我解决了这个问题。谢谢!【参考方案2】:

一种选择是将其读入一个或多个位于例程范围内的托管对象,然后当它们超出范围时,它们将从内存中释放。 (可能要先保存它们)。

【讨论】:

以上是关于如何直接保存到持久存储,而不将数据保存到内存中的主要内容,如果未能解决你的问题,请参考以下文章

ios核心数据:如何更改NSManagedObject而不将其保存到上下文中

如何直接在云端上传图片而不将其存储到本地目录中?

如何在javascript中获取django表单值而不将其保存到模型中

如何在不将 csv 保存到磁盘的情况下将 csv 格式的数据从内存发送到数据库?

在内存中创建 eml 文件而不将其保存在磁盘上

如何在python中生成文件而不将其保存到磁盘?