JSONクエリから作成されたNSMutableDictionaryがあり、ブラウザでjsonクエリを実行すると、出力が必要に応じてアルファベット順に並べられ、NSLOGを使用して正しい順序でこれを表示すると、これが確認されます。ただし、 UITableView セルにデータを入力すると、順序がまったく異なりますが、元の順序を維持したいと考えています。
辞書は順序付けられるように設計されていないことを理解しており、新しい並べ替えられた配列にマップできますが、これを行うと (これがこれを達成する正しい方法である場合)、詳細ビューの正しいキーとインデックスに対処する方法が不明です. 何かご意見は?ありがとう。
JSON データを作成し、テーブル セルを作成するためのコードは次のとおりです。
- (void) makeData {
//Define dictionary
fullDictionary = [[NSMutableDictionary alloc] init];
//parse JSON data from a URL into an NSArray
NSString *urlString = [NSString stringWithFormat:@"http://<JSON feed goes here>"];
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [NSData dataWithContentsOfURL:url];
NSError *error;
fullDictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// cell data - extracting the appropriate values by object rows
cell.textLabel.text = [[[fullDictionary allValues] valueForKeyPath:@"strTerm"] objectAtIndex:indexPath.row];
return cell;
}