如何从url获取objectID?

yjw*_*w44 5 core-data object-identity ios

我的代码如下:

NSURL *urlID = [objID URIRepresentation];
    NSString *strID = [urlID absoluteString];
    NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:strID, @"objectID", nil];
    localNotification.userInfo = infoDict;
Run Code Online (Sandbox Code Playgroud)

那么我想得到这样的反对意见:

NSString *strID = [notification.userInfo objectForKey:@"objectID"];
NSURL *urlID = [[NSURL alloc] initWithString:strID];
NSManagedObjectID *objID = [[NSPersistentStoreCoordinator alloc] managedObjectIDForURIRepresentation:urlID];
Run Code Online (Sandbox Code Playgroud)

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

小智 8

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

NSManagedObjectID *objID = [[NSPersistentStoreCoordinator alloc] managedObjectIDForURIRepresentation:urlID];
Run Code Online (Sandbox Code Playgroud)

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

如果您有托管对象上下文方便,以下应该工作

NSManagedObjectID *objId = [[[self managedObjectContext] persistentStoreCoordinator] managedObjectIDForURIRepresentation:urlID];
Run Code Online (Sandbox Code Playgroud)

否则我同意svena的回复.