核心数据,获取某些布尔值属性的总和

时间:2018-11-27 19:57:16

标签: ios objective-c core-data attributes

我正在记录Core Data属性“通过”(布尔值)

for (Circuit *object in self.distributionBoard.circuits) {
        NSLog(@"Core Data Value =  %d", object.passed);


    }

这很好。计算已保存的布尔值== 1的次数的最有效方法是什么?

到目前为止,使用NSFetchRequesNSExpression并没有获得理想的结果。在这里查看:Core Data sum of all instances attribute和类似的内容,以及常规搜索

1 个答案:

答案 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具有passedtrue的实例数。