What would be a good data structure for UITableView in grouped mode
objective-c, uitableview
Solution
For example an array of dictionaries, where each dictionary holds the title and all items of one section:
NSArray *dataSource = @[
@{@"title": @"Section 0",
@"rows" : @[ item00, item01, item02] },
@{@"title": @"Section 1",
@"rows" : @[ item10, item11, item12] },
@{@"title": @"Section 2",
@"rows" : @[ item20, item21, item22] },
];
The items can be strings or objects of a custom class. Then you can access each item in `cellForRowAtIndexPath` like
Item *item = dataSource[indexPath.section][@"rows"][indexPath.row];
and all other data source methods are also easily implemented.
Problem
Usually I store data in an array. Then, when cellForRowAtIndexPath is called I just look at row and select an item on the array based on row and process. But UITableView as we know can do group view. So what should I do? Should I have an array of array? An NSDictionary of array? What would be the most elegant way to store data in UITableView structure?