使用NSExpression获取与多个核心数据关系的计数

时间:2015-03-15 09:30:13

标签: core-data nsexpression

我的核心数据模型有Note个实体与Link实体有多对多关系,可通过links上的Note媒体资源进行访问。

我正在尝试获取Core Data中每个音符的links属性的计数。为此,我按照下面的链接示例,但我得到了意想不到的结果。 Chained expressions to perform calculations in Core Data

以下是我如何配置获取请求和相关表达式描述:

// Create the expression description that should return the link count for each note.
NSExpression *linksExpression = [NSExpression expressionForKeyPath:@"links"];
NSExpression *countExpression = [NSExpression expressionForFunction:@"count:" arguments:@[linksExpression]];
NSExpressionDescription *linkCountExpressionDescription = [[NSExpressionDescription alloc] init];
linkCountExpressionDescription.name = @"linkCount";
linkCountExpressionDescription.expression = countExpression;
linkCountExpressionDescription.expressionResultType = NSInteger32AttributeType;

// Execute a fetch request that should return an array of dictionaries, each with a single "linkCount" key.
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Note"];
fetchRequest.resultType = NSDictionaryResultType;
fetchRequest.propertiesToFetch = @[linkCountExpressionDescription];
NSArray *countsArray = [self.managedObjectContext executeFetchRequest:fetchRequest error:nil];

我正在使用的SQLite商店包含1000个注释,因此我希望获得1000个字典的数组,每个字典包含LinkCount个键及其links关系的计数。相反,我得到一个字典,给我所有链接的总数。

我应该采取哪些不同方式来获取每个音符的链接数?

0 个答案:

没有答案