我有一个 NSManagedObject 子类,它存储子对象的 URI。它最初在第一次创建子对象时存储临时 URI,并实现在保存之前-willSave
调用-obtainPermanentIDsForObjects
其 NSManagedObjectContext,以便只保留永久 ID。
不过,我遇到的问题是其他实例也存储临时 URI。当一个-willSave
对象在具有相同子对象的另一个对象之后不久收到消息时,它也会调用-obtainPermanentIDsForObjects
并获得一个不同的、错误的永久 URI,从而导致后续的 Core Data 错误错误,例如:
CoreData could not fulfill a fault for '0x102e4c110 <x-coredata://E17EE19B-E7F3-4102-ACFF-3E6F8BE8B104/MyEntityName/p2>'
我想要一种从 NSManagedObject 的旧的、临时的 URIRepresentation 到已经生成的新的、永久的 URIRepresentation 的方法。
我最初的想法是存储我自己的字典<temporary URI,permanent URI>
并在使用之前进行查找-obtainPermanentIDsForObjects
- 是否有一种更简单(更简单或内置)的方式我错过了?我在文档中发现的没有任何建议。