我想知道是否有办法将NSDictionary
对象附加到UITableView
中显示的单元格,因此当选择单元格时,我可以访问{{1}附在那个tableviewcell上。
答案 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对象(数据模型)。