![]() |
1
1
您的操作正在使用存储中实体的不同“版本”。考虑以下操作顺序: 创建两个操作,我们称它们为O:F和O:G,它们将子F和G添加到组1中,称为G:1,子条目集为[a、B、C、D、E]。 操作队列同时将O:F和O:G出列,因此它们都会获取托管对象上下文和实体G:1。 O: G设置G的子项:2到[A,B,C,D,E,G]。
我认为CoreData应该在其中一个线程中抛出乐观的锁定错误,因为它的更改将过时。但我可能错了。 归根结底,您在线程之间对同一个对象进行变异,而不同步对象的状态。与创建20个操作不同,创建1个操作添加20个对象,但您有一个核心架构问题,即尝试在不同步的情况下从多个线程对同一对象进行变异。 每次都会失败。 |
![]() |
Noah H · 如何通过终端或Swift禁用三指轻拍手势? 7 年前 |
![]() |
Dmitry Serov · 货币数字格式-数字为整数时省略分数部分 7 年前 |
![]() |
Duny · ObjC日期始终返回2017年12月25日 7 年前 |
![]() |
Jan Kaiser · NSButton不调用其操作 7 年前 |