Ios 如何获取与我刚刚保存到核心数据的NSManagedObject完全相同的数据?
简单地说,我是这样做的:Ios 如何获取与我刚刚保存到核心数据的NSManagedObject完全相同的数据?,ios,swift,core-data,magicalrecord,Ios,Swift,Core Data,Magicalrecord,简单地说,我是这样做的: var objectID: NSManagedObjectID! MagicalRecord.save(block: { context in if let dictionary = (response as? [AnyHashable: Any])?["data"] as? [AnyHashable: Any] { if let itemInfo = dictionary["item"] as? [AnyHashable: Any] {
var objectID: NSManagedObjectID!
MagicalRecord.save(block: { context in
if let dictionary = (response as? [AnyHashable: Any])?["data"] as? [AnyHashable: Any] {
if let itemInfo = dictionary["item"] as? [AnyHashable: Any] {
objectID = Item.create(with: itemInfo, in: context).objectID //here objectID is NOT nil
}
}
}, completion: { error in
let item = Item.find(with: objectID) //here item is nil
completion(item, Error(error: error))
})
我还创建了扩展:
extension NSManagedObject {
class func find(with objectID: NSManagedObjectID) -> Self? {
return mr_findFirst(with: NSPredicate(format: "SELF = %@", objectID))
}
}
我不知道“magic”MagicalRecord在
Item.create
中做了什么,但一般来说,新创建的对象有一个临时ID,在保存上下文时会发生更改。有一个获取永久ID(for:)
方法在保存之前获取永久ID。我如何调用该方法?有没有办法获取保存到核心数据的对象?我不能使用我的对象的任何属性,因为有许多相同的对象具有相同的属性,我需要的正是我刚才保存的实例。有可能吗?看。