我看到这个问题已经被问了一点,但是所有答案似乎都指向删除上下文时尝试更新对象的原因。我不认为自己在执行此操作,但是却遇到了错误,所以我很困惑(诚然,我在管理保留和开头的引用时感到很困惑)。

我有一个实体,该实体将用户首选项保存为键值记录。其中之一是电子邮件地址。

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/

10-11 19:27