获取Core Data关系中的对象数

时间:2009-10-03 01:04:30

标签: iphone core-data

我有食谱的tableview。用户可以添加和删除配方。 单击配方时,将推送另一个tableview,并显示成分。同样,用户可以添加和删除成分。

配方和配料之间存在一种关系。

我想显示配方tableview行中的成分数。我知道如何在界面构建器中设置所有行,但我不知道如何获得单个配方的成分计数。

这可能吗?

3 个答案:

答案 0 :(得分:12)

使用countForFetchRequest而不是executeFetchRequest和(对于SQL支持的商店),它将执行COUNT而不是SELECT。

答案 1 :(得分:10)

如果您正在使用核心数据,您可以通过调用计数方法询问成分列表中有多少成分:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    int count = [recipe.ingredients count];
    return count;
}

通过查看NSSet class in the documentation

,您可以找到集合类具有的属性和方法

通过查看核心数据创建的生成的类,我找到了要查看的类:

@class ParentObject;
@interface ParentObject :  NSManagedObject  
{
}
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSSet* childObjects;
@end

答案 2 :(得分:1)

只需对所有成分进行抓取,使用允许所有匹配的谓词。执行时,此NSFetchRequest将返回NSArray。只需要[myArray count]来获取成分的数量。