您可以通過使用NSExpressionDescription
爲通過分組隨着NSFetchRequest你可以看到this tutorial做這做這個stackOverFlow question
對於這裏的總和NSExpressionDescription
添加到您的NSFetchRequest
NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc] init];
expressionDescription.name = @"sumOfAmounts";
expressionDescription.expression = [NSExpression expressionForKeyPath:@"@sum.total"];
expressionDescription.expressionResultType = NSDecimalAttributeType;
對於我認爲您可以在獲取記錄時使用NSDateFormatter
進行格式化的日期。
讓我知道這是有幫助:)
UPDATE
[fetch setPropertiesToFetch:[NSArray arrayWithObjects:statusDesc, expressionDescription, nil]];
[fetch setPropertiesToGroupBy:[NSArray arrayWithObject:statusDesc]];
[fetch setResultType:NSDictionaryResultType];
NSError* error = nil;
NSArray *results = [myManagedObjectContext executeFetchRequest:fetch
error:&error];
不,CoreData不具有的strftime或DATEPART相等。而它的groupby只適用於持久性屬性,而不是計算表達式。如果您想通過fetchRequest實現此目的,則必須爲計算的月份/年添加持久屬性,並確保它與日期保持同步。 – pbasdf
這就是我所害怕的。我知道核心數據不是一個ORM,但我有點失望。謝謝 – Hugo