1

我使用本网站http://cocoawithlove.com/2008/08/safely-fetching-nsmanagedobject-by-uri.html中的示例成功存储和检索了对 NSManagedObject 的引用

问题是,应用程序在尝试检索已删除的 NSManagedObject 时崩溃。

我在对象上尝试了 isFault 方法,但它总是返回 no,即使对象存在。

这是我用来检索它的代码:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSData *myData = [prefs objectForKey:@"activatedObject"];
if (myData)
{
    NSURL *myURL = [NSKeyedUnarchiver unarchiveObjectWithData:myData];
    NSManagedObjectID *myID = [self.persistentStoreCoordinator managedObjectIDForURIRepresentation:myURL];
    id myObject = [self.managedObjectContext objectWithID:myID];
    self.Object = myObject;
} 
4

2 回答 2

1

您可以尝试调用此方法:

NSError *error = nil;
id myObject = [self.managedObjectContext existingObjectWithID:myID error:&error];

如果 myID 指定的对象无法获取、不存在或无法出错,则返回 nil。

于 2010-07-29T08:43:07.587 回答
0

文档提到在获取 objectID 之前必须将对象保存到商店。你在保存商店之前得到它吗?

此外,只需考虑保存对象的唯一属性的值,然后执行搜索即可。

于 2010-03-24T13:25:24.927 回答