2011-06-17 95 views
0

我有一个类似于 - >天(表) - >时间(表) - >信息(视图)的层次结构。存储表格视图元素的最佳方法是什么?

将信息存储为NSDictionary,将Days作为关键字并将Time作为NSArray作为每个关键字,或将Days作为NSArray与另一个NSArray作为Time一起存储会更好吗?

重点要注意的事情:

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

回答

0

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

+0

是的,我应该说我正在使用NSMutableArray&NSMutableDictionary。 – jylee

0

我会使用每天NSMutableArray的天NSMutableDictionary为每一天。这样你避免试图保持两个单独的数组同步,因为每个“日”键将始终指向你的时间阵列。

你可以按你想要的任何方式对你的数组排序,因为它是一个数组,你可以选择如何在表中简单地根据键显示你的日子。您可以使用[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和你的钥匙阵列的行了哪个键。

相关问题