将字典对象附加到UITableViewCell

时间:2013-08-29 03:09:57

标签: ios objective-c nsmutablearray nsarray nsdictionary

我想知道是否有办法将NSDictionary对象附加到UITableView中显示的单元格,因此当选择单元格时,我可以访问{{1}附在那个tableviewcell上。

3 个答案:

答案 0 :(得分:3)

当然,只需创建单元格的子类并添加字典即可。您也可以使用完全空的实现:

// MyCell.h
@interface MyCell : UITableViewCell

@property (nonatomic, strong) NSDictionary* dictionary;

@end

// MyCell.m
@implementation MyCell
@end

现在,如果您正在使用故事板,请确保设置您的单元格类,或者如果您不使用故事板,请确保注册它,然后在您出列时设置字典并在稍后将单元格恢复时读取它

答案 1 :(得分:2)

如果您继承UITableViewCell并在自定义单元格中创建NSDictionary属性,则可以实现此目的。

假设您已经在某个地方设置了此属性,以下是在选择单元格时检索它的方法:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    MyCustomCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    NSLog(@"%@",cell.dictionary); //replace "dictionary" by the name of the property you created in the subclass
}

答案 2 :(得分:1)

您应该努力将数据模型(NSDictionary)与视图(MyCell)分离。这就是视图控制器的用途 - 管理每个单元格与数据之间的关系。

您的数据模型通常是NSArray。数组中的每个元素对应于表中的一行(indexPath)。每个NSArray元素都将为每个单元格保存一个NSDictionary对象(数据模型)。​​