5

我的代码如下:

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 为零。哪里不对了 ?怎么做 ?谢谢你 !

4

1 回答 1

9

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

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

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

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

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

否则我会同意 svena 的答复。

于 2012-07-20T14:59:31.110 回答