- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)newIndexPath
{
int index = m_pListView->getIndex([newIndexPath section], [newIndexPath row]);
ListItem* pItem = m_pListView->getItem( index );
if ( pItem->type & CELL_CANNOT_SELECTED )
{
//[tableView deselectRowAtIndexPath:newIndexPath animated:YES];
return;
}
if ( pItem->cmd.isEmpty() )
{
m_pListView->SendCommand( "select", index, (unsigned int)pItem->pData );
}
else
{
m_pListView->SendCommand( pItem->cmd, (unsigned int)pItem->pParam, NULL );
}
}
当程序满足这个条件的时候,程序不会执行if判断中的return语句,为什么呢?
if ( pItem->type & CELL_CANNOT_SELECTED )
{
//[tableView deselectRowAtIndexPath:newIndexPath animated:YES];
return;
}
原因在于编译的时候,编译器把 return语句编译为出栈,返回,所以程序直接进入函数末尾