UITableView - 使用有点复杂的数据填充 table

UITableView - Populating table with a bit complex data

好的,我有一些复杂的数据需要放在自定义 table 视图中。下面是NSMutableDictionary

的结构
cellData = [ "Section Header title" : NSMutableArray]; // NSMutableArray has custom cell objects

所以,基本上我是用相应的部分 header 名称标记自定义单元格数组 objects。问题是,我无法将数据设置为 table 视图单元格。 到目前为止,我一直在处理... cellForRowAtIndexPath

HomeTableViewCell *cell = (HomeTableViewCell*) [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
NSString *sectionTitle = [sectionNames objectAtIndex:indexPath.row];

NSMutableArray *array = [cellData objectForKey:sectionTitle];

if ([sectionTitle isEqual:@"Email"]) {
    Email *email = (Email*) [arr objectAtindex:indexPath.row]; // I know this is wrong because there're multiple objects in "array". I couldn't get it right
    [cell setCellData:...];
}

仅使用 indexPath.row 我无法从 "array" 获得所有 objects。任何尝试使用字典值填充自定义 table 视图单元格的人 ("key" : "Array")?

我想你想要做的是在获取章节标题时使用 indexPath.section:

NSString *sectionTitle = [sectionNames objectAtIndex:indexPath.section];

一旦你有了正确的部分,你的数据应该正确排列。

当然,这假设您已正确设置其他方法,即:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
     return sectionNames.count;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    NSString *sectionTitle = [sectionNames objectAtIndex:indexPath.row];
    NSMutableArray *array = [cellData objectForKey:sectionTitle];
    return array.count;

}