我看到这个问题已经被问了一点,但是所有答案似乎都指向删除上下文时尝试更新对象的原因。我不认为自己在执行此操作,但是却遇到了错误,所以我很困惑(诚然,我在管理保留和开头的引用时感到很困惑)。
我有一个实体,该实体将用户首选项保存为键值记录。其中之一是电子邮件地址。
UserPreference *prefEmailAddress;
@property (nonatomic, retain) UserPreference *prefEmailAddress;
在我的类的ViewWillAppear方法中,我构建了一个获取请求,并获得了对电子邮件地址值的引用,并将UI文本框设置为该值。这很好。
NSArray *prefs = [context executeFetchRequest:request error: &error];
if ([prefs count] > 0) {
prefEmailAddress = [prefs objectAtIndex:0];
[prefEmailAddress setValue:emailAddress.text forKey:@"prefValue"];
}
但是,在另一种方法中,当我尝试将可能已修改的文本框文本保存回该对象时,出现上述崩溃。
我只是在做
NSLog(@"Addr: %@",emailAddress.text);
// [prefEmailAddress setValue:emailAddress.text forKey:@"prefValue"];
最后一行导致异常。似乎prefEmailAddress对象应该仍然存在,但显然不存在。
感谢您对此的任何提示。
最佳答案
我通过移除解决了我的问题
[fetchRequest setFetchBatchSize:<INT_VALUE>];
如果在获取请求时这在您的代码中。
关于iphone - NSObjectInaccessibleException CoreData无法完成故障-仍然感到困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9008051/