0

我很难按照我想要的顺序将标题(部分)放在分组表视图中,这不是数字或字母顺序。

以前我总是通过像这样设置字典和数组来将数据添加到我的表视图中:

 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数组在哪里。然后在设置表格视图时使用字典和数组。

但现在我要按 Beta、Alpha、Charlie 的顺序排列。

现在我知道我的问题是因为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];
}

不知道从这里去哪里。

4

1 回答 1

0

好的,我现在感觉有点傻:

[sortedKeys addObject: @"Beta"];
[sortedKeys addObject: @"Alpha"];
[sortedKeys addObject: @"Charlie"];

做我现在需要的工作。

道歉。

于 2013-01-15T11:17:53.697 回答