我一直坚持核心数据中的一些记录。 记录有很多关系。 通过多对关系搜索持久数据似乎很简单,我使用" SUBQUERY"实现它。我正面临分组记录的问题。
我需要分组" ZCMORecord" by stringValue of" ZCMORecordValue"
自" ZCMORecordValue"是一种多对多的关系。
我甚至需要将ZCMORecords与一个或多个" ZCMORecordValue"分组。
NSManagedObjectContext *context= [[[UIApplication sharedApplication]delegate ]managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *valueDesc = [NSEntityDescription entityForName:@"ZCMORecord" inManagedObjectContext:context];
[fetchRequest setResultType:NSDictionaryResultType];
[fetchRequest setFetchLimit:PAGE_SIZE];
NSPropertyDescription *recordRelationShip = [fetchRequest.entity.relationshipsByName objectForKey:@"recordValueSet.stringValue"];
[fetchRequest setPropertiesToGroupBy:[NSArray arrayWithObjects:recordRelationShip,nil]];
NSError *error;
id fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
尝试此操作时出错。
具有GROUP BY组件的查询中的SELECT子句只能包含 在GROUP BY或聚合函数中命名的属性
我需要在组中获取记录。 我无法弄清楚要设置什么?setPropertiesToGroupBy:"和" setHavingPredicate:"取得适当的成果。
OKAY !!我如何存储数据的示例
ZCMORecordValues
id stringValue<NSString> dateValue<NSDate> record
name Alex - record1<ZCMORecord>
DOB - 10/10/1990 record1<ZCMORecord>
name Anto - record2<ZCMORecord>
DOB - 05/05/1990 record2<ZCMORecord>
name Max - record3<ZCMORecord>
DOB - 10/10/1990 record3<ZCMORecord>
name Mary - record4<ZCMORecord>
DOB - 01/01/1990 record4<ZCMORecord>
现在我想将我的&#34; ZCMORecord&#34;关于DOB。
欢迎任何关于更改模型以便于分组的建议
答案 0 :(得分:0)
最简单的方法是使用NSFetchedResultsController
,获取记录值并将stringValue
作为sectionNameKeyPath
传递。