【发布时间】:2017-07-26 02:47:15
【问题描述】:
这是一个关于核心数据的新手问题,因为我正在 swift 中开始开发 ios。
我不了解核心数据的机制...我如何操作,我的意思是实例化实体(托管对象)而不将它们“附加”到上下文?
假设我有一个返回汽车列表的 api。我想将我的 api 数据解析为 Car 对象列表。现在我想在进行任何数据库操作之前排除所有红色汽车。
但是,如果我将我的汽车实例化为托管对象,它们会直接附加到上下文中,因此如果我对其调用 save,它将在我创建的所有实体中执行!
创建一个新的汽车对象并不意味着我想对我的数据库进行任何类型的操作!
【问题讨论】:
-
请分享一些您尝试过的代码。另外,看看raywenderlich.com/145809/getting-started-core-data-tutorial
-
Txs 寻求帮助,但您的链接没有回答我的问题。这不是关于代码的问题,所以我没有任何代码要发布。我想从我提到的用例中了解最佳实践。
-
当你解析你的 JSON 对象时,当你有一辆红色汽车时,你创建一个
NSManagedObject并将你的值保存到这个。然后,在您完成解析 JSON 后保存您的上下文 -
好吧,你的意思是 ios 上的最佳实践是在执行任何数据库操作之前操作 json,然后根据需要的值创建托管对象?不是真正的用户友好(即使我同意创建不应该使用的对象并不是真正的“性能”)
-
我不会直接从 JSON 响应创建 NSManagedObjects。我会使用像 ObjectMapper 这样的库来首先创建像“中间”对象。然后过滤它们。然后将它们映射到 NSManagedObjects。