如何将 fetchedObjects 独立分配给变量

How to assign fetchedObjects to a variable independently

在我的例子中,我将我的 nsmanagedobjects 放入一个数组中,行为

let rows = self.fetchedResultsController.fetchedObjects as [Row]

在此行之后,我根据需要回滚更改

managedObjectContext?.rollback()

我应该使用行变量的值。但是由于 rollback() 函数,行中的更改也被删除。

如何在 rollback() 函数调用后保留我的数据?

"But due to rollback() function changes in rows are also deleted."

那是因为记录了该方法的具体用途。文档说:

Removes everything from the undo stack, discards all insertions and deletions, and restores updated objects to their last committed values.

调用 rollback 的全部目的是摆脱上下文中任何未保存的更改,因此您描述的是预期的行为。

如果你想保留更改 并且 出于某种原因调用 rollback,你必须将这些更改复制到不受托管对象上下文影响的某个地方,然后我想稍后再将它们复制回来。这将是一个痛苦的屁股,但它是可能的。

真正的问题是您为什么要调用 rollback——一种专门用于撤消未保存更改的方法——如果您有不想撤消的更改。