0

3 つ以上のプロパティを数えてグループ化する必要があります。日付 (yyyy/mm/dd HH:mm:ss) でフィールドをグループ化してカウントしながら髪を引っ張っています。年 - 月 - 日でグループ化し、時間を無視します。しかし、私はまだ詳細を見る時間が必要です。ここではタイムゾーンが大きな役割を果たします。だから私はそれをutc形式で保存します。

NSFetchRequest *fetchRequest    = [[NSFetchRequest alloc] init];
NSEntityDescription *entity     = [NSEntityDescription entityForName:@"logs"
                                              inManagedObjectContext:context;
NSAttributeDescription* att3 = [entity.attributesByName objectForKey:@"savedDate"];
NSExpression *keyPathExpression3 = [NSExpression expressionForKeyPath: @"savedDate"];
NSExpression *countExpression3 = [NSExpression expressionForFunction: @"count:"
                                                           arguments: [NSArray arrayWithObject:keyPathExpression3]];
NSExpressionDescription *att3Description = [[NSExpressionDescription alloc] init];
[expressionDescription3 setName: @"countSavedDate"];
[expressionDescription3 setExpression: countExpression3];
[expressionDescription3 setExpressionResultType: NSInteger32AttributeType];

...

[fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:att1, att1Description, att2, att2Description, att3, att3Description, att4Description, att4, nil]];
[fetchRequest setPropertiesToGroupBy:[NSArray arrayWithObjects:att1, att2, att2, att3, nil]];
[fetchRequest setResultType:NSDictionaryResultType];

日付 (yyyy/MM/dd) でグループ化するにはどうすればよいですか? UTCに変換しても大丈夫ですか?

前もって感謝します

ps:一時的なプロパティでのグループ化は機能せず、取得できません。

4

1 に答える 1

0

次のように、フェス結果コントローラーを使用して、ローカルタイムゾーンの日付をオンザフライで変換する必要がありました

[self willAccessValueForKey:@"startDateTime"];

NSDate * date = [self valueForKey:@"startDateTime"];

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setCalendar:[NSCalendar currentCalendar]];
[formatter setTimeZone:[NSTimeZone localTimeZone]];
[formatter setDoesRelativeDateFormatting:YES];
[formatter setDateStyle:NSDateFormatterShortStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
NSString *tmpValue = [formatter stringFromDate:date];
[self didAccessValueForKey:@"callStartDateTime"];

次に、それらを手動でグループ化し、テーブル ビューで結果コントローラーを取得する代わりに配列を使用するようになりました。

于 2013-06-23T15:29:21.580 に答える