为什么在执行willSelectRowAtIndexPath之后和didSelectRowAtIndexPath之前生成EXC_BAD_ADRESS? 如果没有willSelectRowAtIndexPath实现,它将完美运行。
这是我的代码:
- (void)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
KMWTableViewCell *cell = (KMWTableViewCell *) [tableView cellForRowAtIndexPath:indexPath];
if(cell){
cell.visibleView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cellBackPressed.png"]];
}
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
KMWTableViewCell *cell = (KMWTableViewCell *) [tableView cellForRowAtIndexPath:indexPath];
if(cell){
[self setCurrentAccountId:[[[KMWAppDelegate accounts] objectAtIndex:indexPath.section] objectForKey:@"accountId"]];
[self performSegueWithIdentifier:@"services" sender:self];
}
}
答案 0 :(得分:5)
方法签名错误。它的返回值应为NSIndexPath
:
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
KMWTableViewCell *cell = (KMWTableViewCell *) [tableView cellForRowAtIndexPath:indexPath];
if(cell){
cell.visibleView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cellBackPressed.png"]];
}
return indexPath;
}
在您的实现中,您最终需要返回给定的indexPath
。