我的核心数据模型有一个Note
与实体有一对多关系的实体,Link
可以通过links
.Note
我正在尝试获取links
Core Data 中每个注释的属性计数。为此,我按照下面链接中的示例进行操作,但得到了意想不到的结果。
在 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
关系的计数。相反,我得到一个字典,它给了我所有链接的总数。
我应该做些什么来获得每个笔记的链接计数?