当我添加/编辑/删除核心数据值时,我可以访问从NSManagedObjectContextObjectsDidChangeNotification
收到的通知。
我从userInfo
获得以下数据:
Optional([deleted: {(
<Product: 0x7f8d1a634370> (entity: Product; id: 0xd0000000002c0000 <x-coredata://A9A941BF-C4BA-4E1F-972D-F188032C93E0/Product/p11> ; data: {
amount = 54;
date = "2016-01-10 17:16:53 +0000";
name = test65;
})
)}, managedObjectContext: <NSManagedObjectContext: 0x7f8d1a705040>])
但是我无法检索更改的 Product 对象,因此我可以访问他的属性(金额、日期、名称(。
我可以看到有一个[NSObject: AnyObject]
字典,但我仍然无法获取对象。
文档说:
通知
object
是托管对象上下文。TheuserInfo
字典包含以下键:NSInsertedObjectsKey
、NSUpdatedObjectsKey
,NSDeletedObjectsKey
。
每个键的值(如果可用(是NSManagedObject
对象的Set
。
if deletedObjects = userInfo[NSDeletedObjectsKey] as? Set<Product> {
for product in deletedObjects {
print(product.amount)
}
}
你必须将类型AnyObject强制转换为产品
guard let products = notification.userInfo?[NSDeletedObjectsKey] as? [Product] else {
return
}
// you can use your products here