Ios5 如何按核心数据分组添加多属性

Ios5 如何按核心数据分组添加多属性,ios5,core-data,ios6,sqlite,Ios5,Core Data,Ios6,Sqlite,我的要求是按核心数据从表中获取姓名、电子邮件、手机号码、金额。 如果我选择sql,则我的sql查询如下所示: select name,eMail,mobileNo,sum(amount) amt1 from T1 GROUP BY name,eMail,mobileNo; 在这里我得到了正确的结果 核心数据也是如此 我可以通过按名称提供组来获取名称和总和(金额)。我已经为此提供了以下代码 [request setPropertiesToGroupBy:[NSArray arrayWith

我的要求是按核心数据从表中获取姓名、电子邮件、手机号码、金额。

如果我选择sql,则我的sql查询如下所示:

  select name,eMail,mobileNo,sum(amount)  amt1 from T1 GROUP BY name,eMail,mobileNo;
在这里我得到了正确的结果

核心数据也是如此

我可以通过按名称提供组来获取名称和总和(金额)。我已经为此提供了以下代码

[request setPropertiesToGroupBy:[NSArray arrayWithObject:statusDesc]]

我不知道如何通过核心数据在Group by中添加多个属性。有谁能帮我做那件事吗

 NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Entity1" inManagedObjectContext:context];

 NSAttributeDescription* statusDesc = [entityDesc.attributesByName objectForKey:@"name"];


NSExpression *sumExpression = [NSExpression expressionForFunction:@"sum:" arguments:[NSArray arrayWithObject:[NSExpression expressionForKeyPath:@"totalAmount"]]];

NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc]init];
[expressionDescription setName: @"sumTot"];
[expressionDescription setExpression: sumExpression];
[expressionDescription setExpressionResultType:NSDecimalAttributeType];


NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];

[request setPropertiesToFetch:[NSArray arrayWithObjects:@"name",expressionDescription, nil]];
[request setPropertiesToGroupBy:[NSArray arrayWithObject:statusDesc]];
[request setResultType:NSDictionaryResultType];

NSError *error = nil;
myArray = [context executeFetchRequest:request error:&error];

感谢您为解决方案提供指导

我找到了解决办法。在arrayWithObject和arrayWithObjects之间犯了一个愚蠢的错误

 NSAttributeDescription* statusDesc = [entityDesc.attributesByName objectForKey:@"name"];
 NSAttributeDescription* statusDesc1 = [entityDesc.attributesByName objectForKey:@"eMail"];
 NSAttributeDescription* statusDesc2 = [entityDesc.attributesByName objectForKey:@"mobileNo"];
之后,我通过了所有这样的描述

[request setPropertiesToGroupBy:[NSArray arrayWithObjects :statusDesc,statusDesc1, statusDesc2, nil]];

为什么不尝试使用多个对象的数组?就像您已经使用
setPropertiesToFetch
所做的那样?