グループ化されたテーブル ビューのヘッダー (セクション) を、数字またはアルファベット順ではなく、希望する順序で配置するのが困難です。
以前は、次のようにディクショナリと配列を設定して、常にテーブル ビューにデータを追加していました。
NSMutableDictionary *temp = [[NSMutableDictionary alloc] init];
[temp setObject: AlphaData forKey:@"Alpha"];
[temp setObject: BetaData forKey:@"Beta"];
[temp setObject: CharlieData forKey:@"Charlie"];
self.tableContents = temp;
[temp release];
self.sortedKeys = [[self.tableContents allKeys]
sortedArrayUsingSelector:@selector(compare:)];
はAlphaData
配列です。次に、テーブルビューを設定するときに辞書と配列を使用します。
しかし今は、ベータ、アルファ、チャーリーの順にセクションが必要です。
これで、私の問題が であるためself.tableContents
、NSMutableDictionary
並べ替えやインデックスがないことがわかりました。次のように表示できます。
for (id key in temp) {
NSLog(@"key: %@, value: %@", key, [temp objectForKey:key]);
}
戻り値: チャーリー、ベータ、アルファ。(ソートがない場合、それはかなりランダムであると仮定します)
したがって、削除しsortedArrayUsingSelector:@selector(compare:)];
ても望ましい結果は得られません。
実際に理解するのではなく、いじったり試行錯誤したり、多くのエラーを行ったりしたため、試したことを見失いましたが、次の変更が含まれます。
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [self.sortedKeys objectAtIndex:section];
}
ここからどこへ行くべきかわからない。