Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 存储表视图元素的最佳方法?_Ios_Objective C_Iphone_Tableview_Store - Fatal编程技术网

Ios 存储表视图元素的最佳方法?

Ios 存储表视图元素的最佳方法?,ios,objective-c,iphone,tableview,store,Ios,Objective C,Iphone,Tableview,Store,我有一个这样的层次结构->天表->时间表->信息视图 最好将信息存储为NSDictionary,以天为键,以时间为每个键的NSArray,还是以天为NSArray,以另一个NSArray为时间 需要注意的关键事项: 我想按日期和时间分类。 如果我愿意,我可以删除NSArray中的一些时间数据。 如果要删除或替换数组中的元素,则必须使用可变版本NSMUTABLEARRY和NSMUTABLEDDIctionary。为此,我可能会使用一个数组。我会使用一个NSMutableDictionary of

我有一个这样的层次结构->天表->时间表->信息视图

最好将信息存储为NSDictionary,以天为键,以时间为每个键的NSArray,还是以天为NSArray,以另一个NSArray为时间

需要注意的关键事项:

我想按日期和时间分类。 如果我愿意,我可以删除NSArray中的一些时间数据。
如果要删除或替换数组中的元素,则必须使用可变版本NSMUTABLEARRY和NSMUTABLEDDIctionary。为此,我可能会使用一个数组。

我会使用一个NSMutableDictionary of days和一个NSMutableArray of times for days。这样,您就避免了试图保持两个单独的数组同步,因为每个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
}

然后在didSelectRowatineXpath委托方法中,您知道他们根据所选内容的indexath.row和键数组的行选择了哪个键。

是的,我应该说我使用的是NSMutableArray和NSMutableDictionary。