我已经成功创建了我的“单元格”对象(基于 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];

10-08 09:31