gpt4 book ai didi

ios - Setter 方法不适用于 UITableViewCell 子类的属性

转载 作者:行者123 更新时间:2023-11-28 20:08:10 25 4
gpt4 key购买 nike

我正在尝试获取一个表格来显示姓名和军衔列表。在每个单元格中,我希望有 2 个 UILabel 作为 subview ——一个 UILabel 显示排名,一个 UILabel 显示名称。

我创建了一个 UITableViewCell 子类,它有两个属性如下:

@interface MyTableViewCell : UITableViewCell

@property UILabel* rankLabel;
@property UILabel* nameLabel;

除了每个属性的 @synthesize 之外,我没有向 MyTableView 的 .m 实现文件添加任何内容。实现文件的其余部分正是 xCode 在您创建 UITableViewCell 子类时为您提供的内容。

然后,在包含该表的 masterViewController 中,我有以下内容:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

Person *object = _objects[indexPath.row];

if (cell == nil) {
cell = [[MyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}

cell.nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(cell.frame.size.height, 0, cell.frame.size.width - cell.frame.size.height, cell.frame.size.height)];
cell.nameLabel.text = object.name;
[cell addSubview:cell.nameLabel];

NSString* rankString = [object.rank stringValue];
cell.rankLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.height, cell.frame.size.height)];
cell.rankLabel.text = rankString;
[cell addSubview:cell.rankLabel];
}

当我在调试中运行它时,它到达我设置 cell.nameLabel 并分配它的第一行,并抛出以下错误:

[UITableViewCell setNameLabel:]: unrecognized selector sent to instance 0x108fa64c0

实在不明白为什么setNameLabel方法会在这里出问题。有任何想法吗?提前致谢。

最佳答案

错误似乎告诉您确切的问题。它没有说 [MyTableViewCell setNameLabel:] 它说 [UITableViewCell setNameLabel:] 你可能忘记了将 Storyboard中单元格的类更改为 MyTableViewCell...

编辑:不,他没有使用 Storyboard,但崩溃显然与单元格属于错误的类有关。

编辑:是的,他是,或者至少 Xcode 正在为他做这件事。

关于ios - Setter 方法不适用于 UITableViewCell 子类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21294429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com