存储表视图元素的最佳方法是什么?

时间:2011-06-17 19:05:35

标签: ios objective-c iphone tableview store

我有一个像这样的层次结构 - >天(表) - >时间(表) - >信息(查看)。

将信息存储为NSDictionary会更好,将Days作为键,将Time作为每个键的NSArray,还是将Days作为NSArray,使用另一个NSArray for Time?

需要注意的关键事项:

  1. 我想要那些日子和时间。
  2. 如果我愿意的话,我可以在NSArray中删除一些时间数据。

2 个答案:

答案 0 :(得分:0)

如果要删除或替换数组中的元素,则必须使用可变版本NSMutableArrayNSMutableDictionary。我可能会为此目的使用数组。

答案 1 :(得分:0)

我会使用NSMutableDictionary的天数,每天使用NSMutableArray。这样你就可以避免试图保持两个独立的数组同步,因为每个“day”键总是指向你的数组。

您可以按照自己想要的方式对数组进行排序,因为它是一个数组,您可以根据键选择如何在表格中显示您的日期。您可以使用[dictionary allKeys]方法访问所有密钥的数组。

例如,在viewDidLoad中,您可以使用[dictionary allKeys]方法获取字典键的数组。您可以按照自己喜欢的方式对其进行排序,然后在cellForRowAtIndexPath tableview数据源方法中遍历数组。

-(void)viewDidLoad {
    /* keys = NSMutableArray instance variable
       dictionary = the dictionary of days, with each days value being an array of times 
    */
    keys = [dictionary allKeys];

    //sort however you want
}

然后在你的didSelectRowAtIndexPath委托方法中,根据选择的indexPath.row和keys数组的行知道他们选择了哪个键。