【问题标题】:Why does deleteObject: cause CoreData faults?为什么 deleteObject: 导致 CoreData 故障?
【发布时间】:2016-03-03 08:28:14
【问题描述】:

我有一个清理例程,它清除了一堆托管对象,形成一些似乎触发很多 CoreData 错误的原因。

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"LogEvent"];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"id" ascending:YES];
[request setSortDescriptors:@[sortDescriptor]];
[request setFetchLimit:numberToPurge];

NSArray *events = [context executeFetchRequest:request error:nil];

for (LogEvent *event in events) {
    [context deleteObject:event];
}

[context save:nil];

这就是我在仪器中看到的。

【问题讨论】:

  • 我不知道为什么,但您可以使用 propertiesToFetch 空数组和 returnAsFaults NO 进行优化。

标签: ios objective-c core-data


【解决方案1】:

通常会触发此错误以更新链接到已删除对象的对象的反向关系。

【讨论】:

  • 这个对象没有任何关系,所以这不是原因。
  • 尝试将includesPropertyValues设置为NO
猜你喜欢
  • 2013-01-16
  • 1970-01-01
  • 2016-10-22
  • 2013-06-10
  • 1970-01-01
  • 2012-02-11
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多