从cellForRowAtIndexPath中的字典中获取数据

时间:2011-02-22 22:13:39

标签: iphone cocoa-touch uitableview

我在字典里面和

里面有一组数据
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

方法我想从这个字典中获取数据。我们如何为每个indexPath.row获取对象。

一种方法,我想到的是获取keys数组,然后根据indexPath.row从这个数组中获取对象,然后使用这个键来获取字典对象。

请建议。

3 个答案:

答案 0 :(得分:2)

字典不是像数组那样的有序集合,所以你建议的方法可能就是这样......取决于你希望如何呈现数据(按键/值排序)。

答案 1 :(得分:0)

这不是一个好习惯,因为没有定义字典键的顺序。

如果您的数据必须是字典,那么您必须提供显示字典的键和表的索引路径的显式信息。

例如,您可以使用另一个数组,其中字典的键按照您在表中查看对象的顺序排序。

答案 2 :(得分:0)

您的商品如何在表格中排序?订单重要吗?这个问题没有一个简单的答案。您确定需要保留数据字典吗?我的方式,您有以下选择:

  • 调用[dictionary allValues]获取所有值的数组。然后,您可以按照您希望的方式对其进行排序,并在索引indexPath.row处返回该项。回退是你需要为每一行排序数组,如果你有很多项目,这是不理想的。它可能会使你的滚动波涛汹涌。

  • 保留字典的排序数组版本的副本,并确保在更新字典时更新它。这更适合于不经常更改的大型数据集。您可以将字典和数组包装在一个类中,以保持两者同步。

您需要根据数据的含量来衡量缺点。