获取Core Data关系中的对象数

4 iphone core-data

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

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

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

这可能吗?

Ken*_*agh 12

使用countForFetchRequest而不是executeFetchRequest和(对于SQL支持的存储)它将执行COUNT而不是SELECT.


Hel*_*ant 10

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

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

您可以通过查看文档中的NSSet类来找出集合类具有的属性和方法.

我通过查看核心数据创建的生成类来找出要查看的类:

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


Ale*_*lds 1

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