如何使用核心数据按天分组?

Put*_*tin 6 macos core-data nsfetchedresultscontroller nsfetchrequest ios

我有一个 Entity 被调用,deal并且deal有一个属性被调用date,这是这个交易对象插入商店的时间。

一天可能有好几个deals。

所以我想按天计算一些数据组,我想获取daycountofsomething
喜欢:

2013-06-03 3
2013-06-02 4
Run Code Online (Sandbox Code Playgroud)

我不想使用,sectionPath因为它只将交易放入部分。

我知道我能有这个工作由有另一个属性(类型:字符串)喜欢dayOfTheDate这就像2013-06-03在每个对象。

顺便说一句,瞬态属性在这种情况下似乎不起作用

你能明白我在找什么吗?

在此处发表评论,以便我提供更多详细信息

感谢大家。

Und*_*dog 5

当我计算相同音符的数量时我是如何做到的示例

NSEntityDescription* entity = [NSEntityDescription entityForName:@"Assets"
                                          inManagedObjectContext:[appDelegate managedObjectContext]];
NSAttributeDescription* statusDesc = [entity.attributesByName objectForKey:@"notes"];
NSExpression *keyPathExpression = [NSExpression expressionForKeyPath: @"assetUrl"]; // Does not really matter
NSExpression *countExpression = [NSExpression expressionForFunction: @"count:"
                                                          arguments: [NSArray arrayWithObject:keyPathExpression]];
NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc] init];
[expressionDescription setName: @"count"];
[expressionDescription setExpression: countExpression];
[expressionDescription setExpressionResultType: NSInteger32AttributeType];
[searchFetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:statusDesc,expressionDescription, nil]];
[searchFetchRequest setPropertiesToGroupBy:[NSArray arrayWithObject:statusDesc]];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"timestamp" ascending:NO];
[searchFetchRequest setSortDescriptors:@[sortDescriptor]];
[searchFetchRequest setFetchLimit:10];
NSPredicate *query = [NSPredicate predicateWithFormat:@"notes contains[cd] %@",_txtCameraNote.text];
[searchFetchRequest setPredicate:query];
[searchFetchRequest setResultType:NSDictionaryResultType];
NSArray *fetchedObjects = [appContext executeFetchRequest:searchFetchRequest error:nil];
Run Code Online (Sandbox Code Playgroud)

fetchedObjects 会是这样的。

({
    count = 1;
    notes = "glenny and me";
},
{
    count = 6;
    notes = macair;
})
Run Code Online (Sandbox Code Playgroud)