我使用此网站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;
}
答案 0 :(得分:1)
您可以尝试调用此方法:
NSError *error = nil;
id myObject = [self.managedObjectContext existingObjectWithID:myID error:&error];
如果myID指定的对象无法获取,或者不存在,或者无法出现故障,则返回nil。
答案 1 :(得分:0)
文档提到在获取objectID之前必须将对象保存到商店。你在保存商店之前得到它吗?
另外,只需考虑保存对象的唯一属性的值,而只是执行搜索。