単語の最初の文字でグループ化しようとしているWord:NSManagedObjectサブクラスがあります。次に、各セクションで、単語の長さが同じ場合に英数字の並べ替えを維持しながら、長さのプロパティで並べ替えようとしています。だからそれは次のように見えるでしょう
言葉
- リンゴの長さ=5
- 斧の長さ=3
- 午前長さ=2
Bワード
- ベインの長さ=4
- ボートの長さ=4
- バッグの長さ=3
したがって、最初に新しいNSFetchRequestを初期化します。次に、並べ替え記述子を追加します。最初に値(単語のみ)で並べ替え、次に長さで並べ替えます。最後に、fetchedResultsControllerを初期化し、グループ値を使用して最初の文字でグループ化します。これが私のコードですが、望ましい結果が得られていません。どんな助けでも大歓迎です。
@interface Word : NSManagedObject
@property (nonatomic, retain) NSString * value;
@property (nonatomic, retain) NSString * group;
@property (nonatomic, retain) NSNumber * length;
@end
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Word"];
request.sortDescriptors = [NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"value" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)],
[NSSortDescriptor sortDescriptorWithKey:@"length" ascending:NO], nil];
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:self.wordDatabase.managedObjectContext
sectionNameKeyPath:@"group"
cacheName:nil];