gpt4 book ai didi

ios - 使用自定义对象 ios 键入 Cast

转载 作者:行者123 更新时间:2023-11-29 02:39:42 25 4
gpt4 key购买 nike

我有一个数组,其中可能包含“主题”类或“语言”类的对象。现在我正在手动将我的方法类型转换为主题类。我想检查数组是否有 Theme 类的对象,然后使用 Theme 进行类型转换

    cell.textLabel.text = [NSString stringWithFormat:@"%@",[(Theme *)[_listArray objectAtIndex:indexPath.row] name]];

_listArray 也可以是语言类的对象。

我已经做到了

Class theClass  = [[_listArray firstObject] class];

cell.textLabel.text = [NSString stringWithFormat:@"%@",[(theClass *)[_listArray objectAtIndex:indexPath.row] name]];

但是它不起作用......!!!我应该怎么做?

谢谢。

最佳答案

首先,在将消息 name 发送到特定类型之前,没有必要将存储在 NSArray 中的 id 对象类型转换为特定类型。这也将编译:

cell.textLabel.text = [NSString stringWithFormat:@"%@",[[_listArray objectAtIndex:indexPath.row] name]];

但是,如果相应的元素不响应选择器name,则会出现运行时问题。方法如下:

NSObject *item = [_listArray objectAtIndex:indexPath.row];
if ([item respondsToSelector:@selector(name)]) {
cell.textLabel.text = [NSString stringWithFormat:@"%@",[item name]];
}

关于ios - 使用自定义对象 ios 键入 Cast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25938061/

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