Ios 如何从url获取objectID?

Ios 如何从url获取objectID?,ios,core-data,object-identity,Ios,Core Data,Object Identity,我的代码如下: NSURL *urlID = [objID URIRepresentation]; NSString *strID = [urlID absoluteString]; NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:strID, @"objectID", nil]; localNotification.userInfo = infoDict; 然后我想让反对者像这样:

我的代码如下:

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];

但目标是零。有什么问题吗?怎么做?谢谢大家!

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

NSManagedObjectID *objID = [[NSPersistentStoreCoordinator alloc] managedObjectIDForURIRepresentation:urlID];
您正在分配一个未初始化的新NSPersistentStoreCoordinator,其中未添加任何存储。根据文档,如果没有找到匹配的存储,它将返回nil

如果您手头有托管对象上下文,那么以下内容应该可以使用

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

否则我会同意svena的回答。

可能是您在保存之前存储了一个新创建的对象ID,并在保存之后尝试检索它?由于对象最初有一个临时ID,并且在保存期间将被授予一个永久ID,所以这可以解释您的问题。