0
所以我有一個的tableView有勾號附件類型,我有這樣的方法:表查看有沒有選擇行
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger newRow = [lastIndexPath row];
NSUInteger oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
if (newRow != oldRow) {
UITableViewCell *newCell = [tableView cellForRowAtIndexPath:indexPath];
newCell.accessoryType = UITableViewCellAccessoryCheckmark;
UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:lastIndexPath];
oldCell.accessoryType = UITableViewCellAccessoryNone;
lastIndexPath = indexPath;
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
而且這似乎是第一次工作得很好,但是當我選擇該行第二它會拋出我並說EXC_BAD_ACCESS。當我將模擬器切換到4.3時,它只選擇行,然後不起作用。任何人都可以幫忙嗎?
lastIndexPath @property是怎麼樣的? – phi
@property(nonatomic,retain)NSIndexPath * lastIndexPath;像這樣 –
如何聲明lastIndexPath?我的猜測是這是問題。第一次通過lastIndexPath是零,所以沒有問題。第二遍,它是一個指向已被釋放的對象的指針(從先前調用didSelectRowAtIndexPath的indexPath)。 –