从领域中分离对象?

lio*_*nts 11 realm ios swift

可以说我有以下场景......

ViewController1Person从主线程上的Realm 加载一个对象并将其传递给ViewController2.用户交互ViewController2导致同一个Person对象发生变化,但我只想在用户按下"保存"后保留更改.

目前,当PersonViewController2运行时更改传递的对象时,会抛出错误,表示需要在Write块中对对象进行更改.这是有道理的,但在这种情况下,我实际上并不想立即坚持更改.

  • 有没有办法从对象中分离对象以避免这些检查?
  • 如果没有,那么建议的工作是什么?(将对象复制到新实例?单独跟踪对对象的更改并稍后应用它们?两者看起来都很混乱.)

seg*_*ins 12

现在,您可以制作对象的"独立"副本Object(value: existingObject)- 这可能是目前最简单的解决方案,直到Realm添加类似嵌套事务的内容,这将使undo任意数量的更改更容易.

  • 根据当前的测试,这会分离对象,但不会分离相关对象 - 尝试从多对多关系修改相关对象仍然显示"尝试修改写入事务之外的对象" (3认同)