2012-08-16 62 views
0

是否可以在覈心數據中觀察某些項目(例如用戶)的計數?核心數據KVO計數

我可以做這樣的事情。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleDataModelChange:) name:NSManagedObjectContextObjectsDidChangeNotification object:myManagedObjectContext]; 

NSSet *insertedObjects = [[note userInfo] objectForKey:NSInsertedObjectsKey]; 
localCount += [insertedObjects count]; 

NSSet *deletedObjects = [[note userInfo] objectForKey:NSDeletedObjectsKey]; 
localCount -= [insertedObjects count]; 

但是,這似乎很容易出錯,他們必須是一個更直接的解決方案。

回答

1

是的,你可以。使用NSFetchedResultsController更容易。 在正常情況下(我的意思是沒有NSFetchedResultsController)你下面

NSManagedObject *foo; //Some NSManagedObject 
[foo addObserver: self forKeyPath:@"A" options: NSKeyValueObservingOptionOld |  NSKeyValueObservingOptionNew context:context]; 

隨着NSFetchedResultsController設置它的委託,然後你會收到controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:電話。


編輯: 在你的情況下你的方法是正確的。錯誤必須來自其他地方