0

我有这本词典:

" a) 2012 UN NEWNW" =     (
    "2012/06/04 Saudi Arabia Huge Sandstorm",
    "2012/05/27 Niger Huge Sandstorm"
);
" b) 2012 DEUX " =     (
    "2011/03/30 Niger Huge Sandstorm"
);
" c) just for TROIS" =     (
    "2011/03/30 AHuge Sandstorm over niger",
    "2011/03/30 BHuge Sandstorm over niger",
    "2011/03/30 CHuge Sandstorm over niger",
    "2011/03/30 1Huge Sandstorm over niger",
    "2011/03/30 2Huge Sandstorm over niger",
    "2011/03/30 3Huge Sandstorm over niger",
    "2011/03/30 4Huge Sandstorm over niger",
    "2011/03/30 5CHuge Sandstorm over niger",
    "2011/03/30 6Huge Sandstorm over niger "
);
" d) ****** QUATRE" =     (
    "2011/03/30 7Huge Sandstorm over niger",
    "2011/03/30 8Huge Sandstorm over niger",
    "2011/03/30 9CHuge Sandstorm over niger",
    "2011/03/30 AHuge Sandstorm over niger",
    "2011/03/30 B10CHuge Sandstorm over niger",
    "2011/03/30 **CHuge Sandstorm over niger",
    ""
);

并使用此代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = (UITableViewCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];

    }
    // Configure the cell...

    //---------- CELL BACKGROUND IMAGE -----------------------------
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:cell.frame];
    UIImage *image = [UIImage imageNamed:@"LightGrey.png"];
    imageView.image = image;
    cell.backgroundView = imageView;
    [[cell textLabel] setBackgroundColor:[UIColor clearColor]];
    [[cell detailTextLabel] setBackgroundColor:[UIColor clearColor]];

    NSArray *allKeys = [states allKeys];
    NSString *curKey = [allKeys objectAtIndex:indexPath.section];
    NSArray *curArray = [states objectForKey:curKey];
    curValue = [curArray objectAtIndex:indexPath.row];
    //Arrow 
    cell.textLabel.text = curValue;

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    [[cell textLabel] setFont:[UIFont systemFontOfSize:12.0]];
    return cell;
}

部分顺序是 c) b) a) d) 谁能帮帮我?

4

4 回答 4

2

NSDictionary 类参考

allKeys 返回一个包含字典键的新数组。

- (NSArray *)allKeys

返回值 包含字典键的新数组,如果字典没有条目,则返回空数组。

讨论 未定义数组中元素的顺序。

所以你需要对这个数组进行排序。

于 2012-06-14T11:42:47.663 回答
0

字典没有可预测的顺序。您需要allKeys在按部分选择之前进行排序。

于 2012-06-14T11:41:38.787 回答
0

实际上它不是字典问题,因为它没有顺序它是一个 NSArray 问题,请根据键名对数组进行排序。

于 2012-06-14T11:42:24.770 回答
0

你有两个选择:

1.创建字典数组并将该字典按您想要的顺序存储在其中,并在cellForRowAtIndexPath中使用相同的数组。

2.通过手动提供字典键而不是提供indexPath.row来比较部分并访问字典键。

于 2012-06-14T11:43:30.257 回答