objective-c - 什么是分组模式下 UITableView 的良好数据结构

标签 objective-c uitableview

通常我将数据存储在一个数组中。然后,当调用 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/

相关文章:

iPhone SDK : custom buttons in TableView

ios - Swift:如何从 Objective-C 调用类别或类方法

iphone - 核心数据,尝试使用 NSPredicate 来过滤 toMany 关系集但得到 "to-many key not allowed here"错误

ios - 单个 UITableView 中的多个 CustomCell

ios - NSFetchResultsController 的 NSPredicate

objective-c - 进入编辑模式时保持 UITableViewCell 背景颜色

objective-c - OSX : Monitoring launchd, 守护进程和代理

ios - iOS中特定输入框的软键盘类型

iOS Objective C substringToIndex 崩溃

ios - 在TableView中的 View Controller 之间传递数据