我是核心数据的新手我希望在下面的代码中提供一些帮助,我需要显示实体中的属性数量;
- (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]];
}
答案 0 :(得分:4)
核心数据提供了良好的内省。假设您指的是数据模型中实体为实际声明的属性数,您需要:
NSUInteger attributeCount = [[[object entity] attributesByName] count];
如果您想包含关系数量,请将attributesByName
替换为propertiesByName
。
答案 1 :(得分:0)
现在很容易。通过以下函数捕获特定实体的属性数:
NSInteger count=[managedObjectContext countForFetchRequest:fetchRequest error:&error];