NSMutableDictionary作为UITableView的DataSource

时间:2014-03-02 20:43:05

标签: ios iphone objective-c uitableview

我有一个存储在nsuserdefaults中的NSMutabledictionary,如下所示:(左边的键,右边的值)

{
"3/2/14, 12:17:08 PM Central Standard Time" = 220;
"3/2/14, 12:37:28 PM Central Standard Time" = 220;
}

我想在UITableView中将这些值显示为

3/2/14  220

或类似,左边的日期,右边的重量。

如何使用此信息加载UITableView中的单元格?

2 个答案:

答案 0 :(得分:1)

关于objectForKey来自NSUserDefaults class reference

  
    

返回的对象是不可变的,即使您最初设置的值是可变的。

  

有关此主题的相关讨论,请参阅this SO question

话虽这么说,您可以使用NSDictionary属性访问allKeys的密钥,并以键值方式枚举字典的内容,如下所示:

for (id key in dictionary.allKeys) {
    value = dictionary[key];
}

但是,您不应该使用可变集合(即NSMutableDictionary)作为数据源,因为在将数据传递给数据后,数据可能会发生变化(请记住,它是可变的)。实现代码如下。而是使用NSDictionary的内容创建NSMutableDictionary

答案 1 :(得分:1)

您不能将字典用作表视图的数据源。表视图是有序的表示。字典是无序集合。没有任何东西可以按照任何特定顺序保存字典中的对象。

NSArray是表视图数据源的模型的不错选择。如果有效,你当然可以使用一系列字典。

您还可以使用allKeys方法查询字典中的键,然后保存结果数组,并使用allKeys数组中的索引获取字典中的条目。