NSFetchedResultsController 正在接收关系更改的 didChangeObject?

NSFetchedResultsController is receiving didChangeObject for relationship changes?

我有一个显示 Event(核心数据支持对象)的 table 视图。我在某处还有另一个 table 显示 Ticket。活动门票多

当我创建新票证并将其保存到持久存储时,控制 Event 的 table 视图收到 didChangeObject 通知。我不想这样。 table 视图应该关注的实际上没有任何变化。我碰巧 create/change/modify 票,根据 Time Profiler,我通过处理那些 didChangeObject's 在主线程上浪费了一些宝贵的时间。

我调试了一下,好像是这里发生的:

ticket.event = event;

我在该行之前和之后设置断点,poticket.managedObjectContext.updatedObjects 发送到控制台,一旦我将事件分配给票证,事件就会出现。

现在我将使用以下内容:

- (void)viewWillAppear:(BOOL)animated
{
  [super viewWillAppear:animated];
  self.fetchedResultsController.delegate = self;
  NSPredicate *predicate = [NSPredicate predicateWithFormat:@"end_date >= %@", [NSDate date]];
  self.fetchedResultsController.fetchRequest.predicate = predicate;

  NSError *error;
  BOOL success = [self.fetchedResultsController performFetch:&error];
  if (!success)
    NSLog(@"ERROR: performing fetch: %@", error);

  [self.tableView reloadData];
}

- (void)viewWillDisappear:(BOOL)animated
{
  [super viewWillDisappear:animated];
  // we are not interested in changes when this view is offscreen
  self.fetchedResultsController.delegate = nil;
}

尽管从长远来看,我正在研究一种仅在用户想要提交更改时才保存上下文的解决方案,因为我在单元格中有一堆 -/+ UISteppers,我认为这样做更有意义一个 UIButton 动画到单元格中,按下时将保存上下文,而不是每次 UIStepper 更改时都保存上下文。