0

テーブルビューに問題がありました。

- (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 isSelected をassessoryView (画像) として定義できないことです。

誰かが答えを知っているなら、私を助けてください!

  • Mikkel V (悪い英語でごめんなさい)
4

1 に答える 1

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.

于 2012-11-25T10:43:03.680 に答える