如何从url获取objectID?

时间:2012-05-30 06:49:39

标签: ios core-data object-identity

我的代码如下:

NSURL *urlID = [objID URIRepresentation];
    NSString *strID = [urlID absoluteString];
    NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:strID, @"objectID", nil];
    localNotification.userInfo = infoDict;

然后我想得到这样的反对意见:

NSString *strID = [notification.userInfo objectForKey:@"objectID"];
NSURL *urlID = [[NSURL alloc] initWithString:strID];
NSManagedObjectID *objID = [[NSPersistentStoreCoordinator alloc] managedObjectIDForURIRepresentation:urlID];

但是objID是零。哪里不对了 ?怎么做 ?谢谢!

1 个答案:

答案 0 :(得分:8)

如果这是您的实际代码,则下面的行是可疑的

NSManagedObjectID *objID = [[NSPersistentStoreCoordinator alloc] managedObjectIDForURIRepresentation:urlID];

您正在分配一个未初始化的新NSPersistentStoreCoordinator,但未添加任何商店。根据文档,如果找不到匹配的商店,它将返回nil。

如果您拥有托管对象上下文,则以下操作

NSManagedObjectID *objId = [[[self managedObjectContext] persistentStoreCoordinator] managedObjectIDForURIRepresentation:urlID];

否则我同意svena的回复。