将字典对象附加到 UITableViewCell

Posted

技术标签:

【中文标题】将字典对象附加到 UITableViewCell【英文标题】:attaching dictionary object to UITableViewCell 【发布时间】:2013-08-29 03:09:56 【问题描述】:

I would like to know if there is a way to attach a NSDictionary object to a cell that is displayed in a UITableView, so when a cell is selected I can access the NSDictionary attached to that tableviewcell.

【问题讨论】:

【参考方案1】:

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

// MyCell.h
@interface MyCell : UITableViewCell

@property (nonatomic, strong) NSDictionary* dictionary;

@end

// MyCell.m
@implementation MyCell
@end

现在,如果您正在使用情节提要,请确保您设置了您的单元格类,或者如果您不使用它,请注册它,然后在您出队时设置字典并在稍后获取单元格时读取它.

【讨论】:

太棒了..现在要弄清楚如何对它们进行子类化..非常感谢。【参考方案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

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于将字典对象附加到 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章

将从字典对象转换的 NSString 附加到 NSMutableArray

如何将 Python 字典附加到 Pandas DataFrame,将键与列名匹配

将字典附加到循环中的列表

使用 jinja2 时如何将新条目添加到字典对象中?

如何将字典键附加到列表中? [复制]

如何将字典附加到熊猫数据框?