如何在 CoreData 和 Swift 中仅获取已保存到上下文中的对象并忽略临时对象?

问题描述 投票:0回答:1

上下文

我正在构建一个使用

CoreData
的应用程序。打开
NewEntityForm
时,应用程序会创建此
Object
Entity
供用户操作。当用户保存他的更改时,它会被保存到
Context
,否则它会被丢弃使用
object.rollback()
.

这意味着在给定的

Uncommitted Objects
中任何时候都可以有
Context
。但是,我只想在应用程序中展示保存的内容,期待
NewEntityForm
.


代码

此代码获取所有对象,保存到上下文和临时。

FetchRequest(sortDescriptors: [SortDescriptor(\.name, order: .forward)])

问题

  • 我怎样才能调整我的
    FetchRequest
    ,以便它只返回
    Objects
    已经保存到
    Context
    并忽略
    Uncommitted Objects
    .
ios swift swiftui core-data nsfetchrequest
1个回答
0
投票

如何调整我的 FetchRequest 以便它只返回已保存到上下文的对象并忽略未提交的对象。

托管对象上下文通常被描述为对象的“便签本”——它的目的是在新对象保存之前跟踪新对象和对现有对象的更改。一旦将对象保存在上下文中,所有内容都会写回到上下文的父存储中。因此,如果您想忽略未保存的更改,您应该使用相同的父存储创建一个新的托管对象上下文。或者,如果父存储是另一个托管对象上下文,您可以只在该上下文中发出获取请求。

© www.soinside.com 2019 - 2024. All rights reserved.