0

私はiOSプログラミングが初めてです。NSDictionary でキーを並べ替えるか、キーの順序を逆にする必要があります。

私の現在のキーは次のようなものです。

おー!また、キーは XML から取得されるため、キーの値はありません。

NSDictionary (GradDict と呼ばれる);

2012 S1
2012 S2

このようになりたいです。

2012 S2
2012 S1

これが私のコードです。

parserDidEndDocument では:

NSEnumerator *enumerator = [gradDict keyEnumerator];
id key;

while ((key = [enumerator nextObject])) {
    NSLog(@"Key:%@",key);
    NSLog(@"%@", [gradDict objectForKey:key]);

}
self.sort = [key sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

cellForRowAtIndexPath:

ModuleCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ModuleCell"];

if (!cell)
{
    cell = [[[NSBundle mainBundle] loadNibNamed:@"ModuleCell" owner:nil options:nil] objectAtIndex:0];
}

NSString *period = [self.sort objectAtIndex:indexPath.section];
NSMutableArray *periodArray = [gradDict objectForKey:period];
Module *m = [periodArray objectAtIndex:indexPath.row];

[cell.moduleNameLabel setText:[m moduleName]];
[cell.moduleCreditLabel setText:[[NSString alloc] initWithFormat:@"%d", [m moduleCredits]]];
[cell.moduleGradeLabel setText:[m moduleGrade]];
cell.contentView.backgroundColor = [UIColor colorWithRed:0.75 green:0.93 blue:1 alpha:1];
[self.tableView setSeparatorColor:[UIColor colorWithRed:0.55 green:0.55 blue:0.55 alpha:1]];

return cell;

並べ替えを間違っていますか?そして、cellForRowAtIndexPath をどのように行うのですか?

4

1 に答える 1

0

私の理解が正しければ、辞書内のデータをソートする必要がありますよね?ただし、辞書の並べ替えは保存されません。キーを並べ替えてから、配列を作成できます。

于 2013-05-16T08:23:00.773 に答える