我正在记录Core Data
属性“通过”(布尔值)
for (Circuit *object in self.distributionBoard.circuits) {
NSLog(@"Core Data Value = %d", object.passed);
}
这很好。计算已保存的布尔值== 1
的次数的最有效方法是什么?
到目前为止,使用NSFetchReques
或NSExpression
并没有获得理想的结果。在这里查看:Core Data sum of all instances attribute和类似的内容,以及常规搜索
答案 0 :(得分:2)
由于您的属性是布尔值,因此可以使它比该答案中描述的方法简单得多。使用谓词匹配passed
的值,然后获取结果的计数,而不是获取的对象。像这样:
NSFetchRequest<Event *> *fetchRequest = MyEntity.fetchRequest;
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"passed = true"];
NSError *error = nil;
NSUInteger count = [self.managedObjectContext countForFetchRequest:fetchRequest error:&error];
然后,count
具有passed
为true
的实例数。