13

同様の質問に出くわしましたが、それを達成する方法の完全な例はありませんでした。

翻訳しようとしている SQL クエリは次のとおりです。

SELECT date, SUM(amount) FROM Table GROUP BY date;

次の部分コードのデバッグに助けが必要です (現在、fetchRequest は nil を返します)。

entity = [NSEntityDescription entityForName:@"Table" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

NSExpressionDescription* ex = [[NSExpressionDescription alloc] init];
[ex setExpression:[NSExpression expressionWithFormat:@"@sum.amount"]];
[ex setExpressionResultType:NSDecimalAttributeType];

[fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:@"date", ex, nil]];
[fetchRequest setPropertiesToGroupBy:[NSArray arrayWithObject:@"date"]];
[fetchRequest setResultType:NSDictionaryResultType ];

[self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

これはエラーです:

2012-09-28 13:58:46.319 App[12205:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
4

1 に答える 1

7

上記のコードが必要です

[ex setName:@"somename"];

fetchRequest を実行する前に。

于 2012-10-01T08:48:12.247 に答える