gpt4 book ai didi

ios - 多个方法命名错误。涉及多个类

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

代码“return [cell height]”的最后一行给我一个错误“发现多个名为“height”的方法具有不匹配的结果、参数类型或属性”。此代码在 32 位上运行良好,但在 64 位(模拟器)上运行不佳。

请有人帮忙解决这个问题。还有其他帖子提到了这一点,但它们只有一种类型可以进行类型转换。我在数组 self.cells 中有不同的类

我可以检查每个“单元格”的类类型,然后返回相应的高度,但这是一个繁琐的代码。有更好的方法吗?

非常感谢帮助。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:  (NSIndexPath *)indexPath
{
id cell = self.cells[indexPath.row];
if ([cell isKindOfClass:[TripCell class]])
{
return 150;
}
return [cell height];
}

最佳答案

您的“单元格”被声明为具有“id”类型。这意味着编译器根本不知道它是什么类型的对象。因此,如果您将消息“height”发送给声明为 id 的对象,编译器会假定它是它知道的名为“height”的方法之一。如果您有不同的名为“height”的方法并具有不同的返回类型,那么编译器将不知道此调用将返回什么。

例如,如果你在一个类中有一个方法 - (int) height,在另一个类中有另一个方法 - (CGFloat) height,编译器不知道该方法返回的值是 int 还是 CGFloat。

解决方案是:将单元格从“id”转换为特定类型,最好是正确的类型。或者不要对名为“height”的方法使用不同的返回类型。

关于ios - 多个方法命名错误。涉及多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29221410/

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