指向整数转换的不兼容指针使用“UIView *”类型的表达式初始化'BOOL'(又名'signed char')

时间:2012-11-25 09:08:53

标签: iphone uitableview tableview xcode4.5 accessoryview

我的tableview出了问题。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

[tableView deselectRowAtIndexPath:indexPath animated:YES];

UITableViewCell *tableCell = [tableView cellForRowAtIndexPath:indexPath];
BOOL isSelected = (tableCell.accessoryView = [[ UIImageView alloc ] initWithImage:[UIImage imageNamed:@"Checkmark-hvid"]]);

if (isSelected) {

    tableCell.accessoryType = UITableViewCellAccessoryNone;

}
else {

    tableCell.accessoryView = [[ UIImageView alloc ]

                               initWithImage:[UIImage imageNamed:@"Checkmark-hvid"]];
}

}

问题是我无法定义BOOL被选为评估视图(图像)。

如果有人知道答案,请帮助我!

  • Mikkel V(我的英语不好)

1 个答案:

答案 0 :(得分:0)

在此声明中:

BOOL isSelected = (tableCell.accessoryView = [[ UIImageView alloc ] initWithImage:[UIImage imageNamed:@"Checkmark-hvid"]]);

(tableCell.accessoryView = ...类型UIView *,这就是编译器所抱怨的。要将其转换为BOOL,请执行以下操作:

BOOL isSelected = (tableCell.accessoryView = [[ UIImageView alloc ] initWithImage:[UIImage imageNamed:@"Checkmark-hvid"]]) != nil;

(注意与nil的比较,这会导致布尔条件。)

但是,您的所有代码看起来都有些狡猾,因为我希望alloc/init始终成功,因此isSelected始终为YES