Извлечение подсчетов взаимосвязей основных данных со многими с помощью NSExpression
Моя базовая модель данных имеет 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
отношения. Вместо этого я получаю один словарь, который дает мне общее количество всех ссылок.
Что я должен сделать по-другому, чтобы получить количество ссылок для каждой заметки?