【问题标题】:Best way to store table view elements?存储表格视图元素的最佳方式?
【发布时间】:2011-09-17 10:45:56
【问题描述】:

我有这样的层次结构 -> 天(表)-> 时间(表)-> 信息(视图)。

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

注意事项:

  1. 我想要日期和时间的排序。
  2. 如果我愿意,我可以删除 NSArray 中的一些时间数据。

【问题讨论】:

    标签: ios objective-c iphone tableview store


    【解决方案1】:

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

    【讨论】:

    • 是的,我应该说我正在使用 NSMutableArray 和 NSMutableDictionary。
    【解决方案2】:

    我会使用 NSMutableDictionary 天数和 NSMutableArray 天数。这样您就可以避免尝试使两个单独的数组保持同步,因为每个“日”键将始终指向您的时间数组。

    由于它是一个数组,因此您可以按您想要的任何方式对时间数组进行排序,并且您可以简单地根据键选择如何在表格中显示您的日期。您可以使用 [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 数组的行知道他们选择了哪个键。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      相关资源
      最近更新 更多