通常我将数据存储在一个数组中。然后,当调用 cellForRowAtIndexPath 时,我只查看行并根据行和进程在数组中选择一个项目。
但我们所知道的 UITableView 可以进行分组 View 。
那我该怎么办呢?
我应该有一个数组吗?数组的 NSDictionary?在 UITableView 结构中存储数据的最优雅方式是什么?
最佳答案
例如字典数组,其中每个字典包含 一个部分的标题和所有项目:
NSArray *dataSource = @[
@{@"title": @"Section 0",
@"rows" : @[ item00, item01, item02] },
@{@"title": @"Section 1",
@"rows" : @[ item10, item11, item12] },
@{@"title": @"Section 2",
@"rows" : @[ item20, item21, item22] },
];
项目可以是字符串或自定义类的对象。那么你也能
访问 cellForRowAtIndexPath
中的每个项目,例如
Item *item = dataSource[indexPath.section][@"rows"][indexPath.row];
所有其他数据源方法也很容易实现。
关于objective-c - 什么是分组模式下 UITableView 的良好数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20216902/