监视NSManagedObject上的更改,类似于NSFetchedResultsController

时间:2013-09-03 17:40:36

标签: objective-c core-data

我实现了一个类似于NSFetchedResultsController的类 - 我称之为DKDataArray。与NSFetchedResultsController不同,它不从数据库中获取对象,而是从另一个对象的关系中获取它们。

我现在想要以一种监视其已获取对象的变化并将更改传播给委托的方式扩展它 - 就像NSFetchedResultsController那样。

这是我想支持的委托方法:

@protocol DKDataArrayDelegate

@optional
- (void)dataArray:(DKDataArray *)dataArray
  didChangeObject:(id)anObject
          atIndex:(NSInteger)index;

@end

我该怎么做?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以注册NSManagedObjectContextObjectsDidChangeNotification 托管对象上下文。来自文档:

  

在托管中包含的对象的属性值时发布   对象上下文已更改。通知在期间发布   processPendingChanges,在处理完更改后,   ...
  通知对象是托管对象上下文。 userInfo   字典包含以下键:NSInsertedObjectsKey,   NSUpdatedObjectsKeyNSDeletedObjectsKey