3

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

4

3 回答 3

3

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

// MyCell.h
@interface MyCell : UITableViewCell

@property (nonatomic, strong) NSDictionary* dictionary;

@end

// MyCell.m
@implementation MyCell
@end

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

于 2013-08-29T03:19:02.230 回答
2

如果您将 a 子类化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
}
于 2013-08-29T03:17:52.950 回答
1

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

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

于 2013-08-29T05:26:15.407 回答