保存后如何直接获取对象的NSManagedObjectID?

时间:2014-03-16 22:33:19

标签: ios core-data nsmanagedobject nsmanagedobjectid

如何在保存后直接获取对象的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];
}

1 个答案:

答案 0 :(得分:2)

您尝试在返回的数据为updatedDict时设置字典(NSSet)。
你可能只需要从它所在的集合中获取它......

NSSet* s = [dict valueForKey:@"updated"];
[s valueForKey:@"objectID"]

这将返回一组NSManagedObjectID s 有关如何访问对象的信息,请参阅NSSet