0

Core Dataで、ユーザーなどの一部のアイテムの数を監視することは可能ですか?

私はこのようなことをすることができました。

[[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];

しかし、これはエラーが発生しやすいようであり、より直接的な解決策である必要があります。

4

1 に答える 1

1

はい、できます。NSFetchedResultsControllerを使用するとさらに簡単になります。通常の場合(つまり、NSFetchedResultsControllerなし)、次のようにします

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

NSFetchedResultsControllerを設定すると、デリゲートになり、controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:呼び出しを受信します。


編集:あなたの場合、あなたのアプローチは正しいです。エラーは別の場所から発生する必要があります

于 2012-08-16T14:20:43.090 に答える