现在的位置: 首页 > 综合 > 正文

为何不进入if语句

2013年01月31日 ⁄ 综合 ⁄ 共 703字 ⁄ 字号 评论关闭

- (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语句编译为出栈,返回,所以程序直接进入函数末尾

 

 

 

抱歉!评论已关闭.