我的代码如下:
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是零。哪里不对了 ?怎么做 ?谢谢!
答案 0 :(得分:8)
如果这是您的实际代码,则下面的行是可疑的
NSManagedObjectID *objID = [[NSPersistentStoreCoordinator alloc] managedObjectIDForURIRepresentation:urlID];
您正在分配一个未初始化的新NSPersistentStoreCoordinator,但未添加任何商店。根据文档,如果找不到匹配的商店,它将返回nil。
如果您拥有托管对象上下文,则以下操作
NSManagedObjectID *objId = [[[self managedObjectContext] persistentStoreCoordinator] managedObjectIDForURIRepresentation:urlID];
否则我同意svena的回复。