0

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

1 回答 1

2

当返回updatedDict的数据是NSSet.
您可能只需要从它所在的集合中获取它...

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

这将返回一组NSManagedObjectIDs。
查看NSSet如何访问对象。

于 2014-03-16T22:50:28.243 回答