如何在保存后直接获取对象的NSManagedObjectID?
我已尝试使用NSNotification
NSManagedObjectContextDidSaveNotification
并获取更新/插入的值并从一个(唯一的)托管对象获取对象ID,但当我发送时,它会给我“无法识别的选择器”尝试抓取对象ID。
我可以在保存后立即获取对象ID吗?
- (void)handleDidSaveNotification:(NSNotification *)note
{
NSDictionary *dict = [note userInfo];
NSDictionary *updatedDict = [dict valueForKey:@"updated"];
NSLog(@"Notification: %@", dict);
NSLog(@"Updated Info: %@", updatedDict);
NSManagedObject *core = [updatedDict valueForKey:@"entity"];
NSManagedObjectID *objectId = [core objectID];
}
答案 0 :(得分:2)
您尝试在返回的数据为updatedDict
时设置字典(NSSet
)。
你可能只需要从它所在的集合中获取它......
NSSet* s = [dict valueForKey:@"updated"];
[s valueForKey:@"objectID"]
这将返回一组NSManagedObjectID
s
有关如何访问对象的信息,请参阅NSSet
。