0

我是核心数据的新手,我希望在下面的代码中提供一些帮助,我需要显示实体中的属性数量;

    - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];

    //NSUInteger attributeCount = [[[object entity] attributesByName] count];
    float valueSF = 0;
    for (NSManagedObject *object in [sectionInfo objects]) {
        NSUInteger attributeCount = [[[object entity] attributesByName] count];
        valueSF += [[object valueForKey:@"value"] floatValue];
        valueSF = valueSF / attributeCount;
    }
    return [NSString stringWithFormat:@"[Average = %.03f] [Cases = %i]", valueSF, [[sectionInfo objects] count]];

}
4

2 回答 2

4

Core Data 提供了很好的内省。假设您的意思是为数据模型中的实体实际声明的属性数量,您需要:

NSUInteger attributeCount = [[[object entity] attributesByName] count];

如果要包括关系数,请替换attributesByNamepropertiesByName

于 2013-01-28T21:09:04.847 回答
0

现在很容易。通过以下函数捕获的特定实体的属性数:

NSInteger count=[managedObjectContext countForFetchRequest:fetchRequest error:&error];
于 2015-11-20T14:56:38.310 回答