为什么我不能从NSArray返回的自定义对象调用公共方法?

时间:2015-03-24 06:43:39

标签: ios objective-c object nsarray

所以我正在做的是在调用tableView:cellForRowAtIndexPath:时尝试在索引i处获取数组的值。当我调试它时,我实际上看到我的对象作为我的自定义对象,但我无法访问它的方法。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // some code to get the cell here   

    id dilemaView = self.dataArray[indexPath.row];
    DilemaUIView * dv = (DilemaUIView *)dilemaView;

    if([dilemaView isKindOfClass:[DilemaUIView class]]){
        cell.imageView.image = [dilemaView getLeftImage];
    }

    return cell;
}

问题是isKindOfClass总是返回NO。我哪里错了?谢谢!

2 个答案:

答案 0 :(得分:-1)

感谢你的帮助。我想我发现了这个问题 - 当我创建继承自UIView的DilemaUIView时,我将自己设置为:

self = (DilemaUIView*)imageView;

其中imageView的类型为UIImageView。这就是为什么我不能把它归还给它。 实际上现在它更简单,因为我想从中获取图像,现在我可以使用

cell.imageView.image = dv.image;

非常感谢!

答案 1 :(得分:-2)

请尝试检查dv而不是dilemaview

if([dv isKindOfClass:[DilemaUIView class]]){
        cell.imageView.image = [dilemaView getLeftImage];
    }