2014-12-30 127 views
1

我想取消選擇我的tableview單元格。但在5秒後自動選擇。我嘗試NSTimer這樣取消選擇單元格後,我選擇

[NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector ([tableView deselectRowAtIndexPath:indexPath animated:YES]) userInfo:nil repeats:NO]; 
在這種方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

但說的XCode我失敗了。

請幫忙 謝謝大家。

回答

1

這可能必須在主線程上執行。將其更改爲分派,並將其自行排序。

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ 
     [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
}); 

這將在5秒後分配呼叫,然後在主線程上執行取消選擇。

+0

dispatch_async在此處是不必要的,因爲dispatch_after將在提供的隊列(主隊列)上執行。 – execv

+0

啊,很好。編輯。 – Rick

+0

您應該製作一個指向tableView的弱指針,以便在您離開tableView所在的場景並且需要解除分配的情況下導航時不泄漏內存。 –

相關問題