我可以在添加/编辑/删除核心数据值时访问从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]
字典,但我仍然无法获得该对象。
答案 0 :(得分:6)
文档说:
通知
object
是托管对象上下文。userInfo
字典包含以下键:NSInsertedObjectsKey
,NSUpdatedObjectsKey
和NSDeletedObjectsKey
。
每个密钥的值(如果可用)是Set
个NSManagedObject
个对象。
if deletedObjects = userInfo[NSDeletedObjectsKey] as? Set<Product> {
for product in deletedObjects {
print(product.amount)
}
}
答案 1 :(得分:-1)
您必须将AnyObject类型转换为Product
guard let products = notification.userInfo?[NSDeletedObjectsKey] as? [Product] else {
return
}
// you can use your products here