【问题标题】:From pList (dictionary) to Tableview从 pList(字典)到 Tableview
【发布时间】:2010-10-21 07:34:34
【问题描述】:

我有一个可编辑的 pList,其中包含以下格式的字符串字典:

21-10-2010  ->  @"item1"
20-10-2010  ->  @"item2"
19-10-2010  ->  @"item3"
18-10-2010  ->  @"item4"
17-10-2010  ->  @"item5"
ect...

因此,将字符串格式的日期作为键,将具有不同信息的字符串作为值。字典的长度最多可以变成 200 个键。而且钥匙不一定按顺序排列,可能会丢失一些日期。

我想用 UITableViewCellStyleValue2 在表格视图中显示键及其值。目前,我通过在启动时将所有键写入全局 NSMutableAray 将它们放入 tableview:

keysArray = [myDictionary allKeys];

然后在 tableview 方法中,我通过使用普通 indexPath 作为数组的索引将它们放入:

cell.textLabel.text = [keysArray objectAtIndex:indexPath];
cell.detailTextLabel.text = [myDictionary objectForKey: [keysArray objectAtIndex:indexPath]];

这是有效的,但日期不按顺序排列,最高日期在前。这是因为“allKeys”函数以随机顺序返回键(在它自己的字典中也没有顺序)。

循环遍历全局数组并将这个值作为键引用到另一个字典(从外部 pList 文件加载)的整个方法非常复杂和尴尬。所以我正在寻找一种按日期对 NSMutableArray 进行排序的方法,或者寻找一种更好的方法来实现我想要的。

感谢您的聆听,约翰。

【问题讨论】:

    标签: iphone uitableview dictionary nsmutablearray plist


    【解决方案1】:

    您可以创建一个按日期排序的数组。您将索引此数组 indexPath.row 以询问项目值。

    要对数组进行排序,您可以使用:

    -sortedArrayUsingComparator:
    
    [array sortedArrayUsingComparator:^(id obj1, id obj2) { 
      // Your comparaison
    }];
    

    看到这个guide for block usage

    【讨论】:

    • 这个答案让我朝着正确的方向前进。在阅读了它之后,我最终使用标准比较器进行了操作。
    猜你喜欢
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 2011-01-08
    • 1970-01-01
    相关资源
    最近更新 更多