Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 核心数据KVO计数_Objective C_Ios_Core Data_Key Value Observing - Fatal编程技术网

Objective c 核心数据KVO计数

Objective c 核心数据KVO计数,objective-c,ios,core-data,key-value-observing,Objective C,Ios,Core Data,Key Value Observing,是否可以观察核心数据中某些项目(比如用户)的计数 我可以这样做 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleDataModelChange:) name:NSManagedObjectContextObjectsDidChangeNotification object:myManagedObjectContext]; NSSet *insertedObjects = [[note

是否可以观察核心数据中某些项目(比如用户)的计数

我可以这样做

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

但这似乎很容易出错,他们的解决方案必须更直接。

是的,你可以。使用NSFetchedResultsController更容易。 在正常情况下(我的意思是没有NSFetchedResultsController),您可以执行以下操作

NSManagedObject *foo; //Some NSManagedObject
[foo addObserver: self forKeyPath:@"A" options: NSKeyValueObservingOptionOld |     NSKeyValueObservingOptionNew context:context];
使用NSFetchedResultsController设置它的委托,然后您将收到
控制器:didChangeObject:atIndexPath:forChangeType:newIndexPath:
调用


编辑: 在你的情况下,你的方法是正确的。错误一定来自其他地方