如何将 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
——一种专门用于撤消未保存更改的方法——如果您有不想撤消的更改。
在我的例子中,我将我的 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
——一种专门用于撤消未保存更改的方法——如果您有不想撤消的更改。