我有一个数组可能有"主题"课程或"语言"类。现在我手动将我的方法类型转换为Theme类。我想检查If数组是否具有Theme类的对象,然后使用Theme
键入它 cell.textLabel.text = [NSString stringWithFormat:@"%@",[(Theme *)[_listArray objectAtIndex:indexPath.row] name]];
_listArray也可以是Language Class的对象。
我已经完成了
Class theClass = [[_listArray firstObject] class];
cell.textLabel.text = [NSString stringWithFormat:@"%@",[(theClass *)[_listArray objectAtIndex:indexPath.row] name]];
但它不起作用...... !!! 我该怎么做?
感谢。
答案 0 :(得分:1)
首先,在向id
发送消息NSArray
之前,不必将name
中存储的强制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]];
}
,则会遇到运行时问题。方法如下:
{{1}}