我已经成功创建了我的“单元格”对象(基于 UITableViewCell),并在通过 cellForRowAtIndexPath 构建表格时成功使用了它。
但是,我如何解构我在 didSelectRowAtIndexPath 中所做的事情?
我目前收到错误 “不兼容的指针类型初始化 'MyCell *__strong' 类型为 'UITableViewCell' 的表达式”
鉴于我的对象 (MyCell) 基于 UITableViewCell,我不明白为什么我会收到此错误。
你能帮我理解我做错了什么吗?
我的替代方法是为单元格中的两个标签中的每一个使用“TAG”并以这种方式获取它们,但我只是在这里进行试验,试图了解更多关于这一切如何运作的信息。
任何帮助将不胜感激。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"myCellID";
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil) {
cell = [[MyCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
cell.accountCode.text = @"0009810";
cell.accountName.text = @"Agent Name";
return cell;
}
这是另一种方法。我在 MyCell *cell = [tableView cellForRowAtIndexPath:indexPath] 上收到错误消息;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Get the cell that was selected
MyCell *cell = [tableView cellForRowAtIndexPath:indexPath];
AccountRecord *accountRecord = [[AccountRecord alloc] init];
accountRecord.accountCode = cell.accountCode.text;
accountRecord.accountName = cell.accountName.text;
[self performSegueWithIdentifier:@"AccountDetail" sender:accountRecord];
}
这是 MyCell
#import <UIKit/UIKit.h>
@interface MyCell : UITableViewCell
@property (nonatomic,strong) IBOutlet UILabel *accountCode;
@property (nonatomic,strong) IBOutlet UILabel *accountName;
@end
任何帮助,将不胜感激。
最佳答案
改变这个:
MyCell *cell = [tableView cellForRowAtIndexPath:indexPath];
到以下几点:
MyCell *cell = (MyCell *) [tableView cellForRowAtIndexPath:indexPath];