2016-05-15 24 views
0

我試圖查看用戶是否在表視圖中按下單元格,但是我無法將其與nil進行比較?我如何檢查一個單元格是否被按下?這是處理程序,當用戶執行上表視圖NSIndexPath永遠不能爲零,不允許比較

func handleLongPress(gestureRecognizer: UILongPressGestureRecognizer) { 
    let p: CGPoint = gestureRecognizer.locationInView(self.tableView) 
    let indexPath: NSIndexPath = self.tableView.indexPathForRowAtPoint(p)! 
    if indexPath == nil{ 

    } 
    else if gestureRecognizer.state == .Began { 
     print(indexPath.row) 
    } 

} 

回答

4

你不應該強行拆開包裝,然後再檢查nil長按 - 會崩潰的應用程序。你應該做的是:放下拆包,然後比較!

func handleLongPress(gestureRecognizer: UILongPressGestureRecognizer) { 
    let point = gestureRecognizer.locationInView(self.tableView) 
    let indexPath = self.tableView.indexPathForRowAtPoint(point) 
    if let touchedPath = indexPath { 
     if gestureRecognizer.state == .Began { 
      print(touchedPath.row) 
     } 
    } 
} 
+0

謝謝! IT工作 –

+0

你在攪拌東西。有一個他正在討論的**編譯器**錯誤,編譯器說*你已經強行解開了我,我永遠不會'無',因此我永遠不會進入那條線!有人說我可能會崩潰(正如你所提到的那樣),你'有力地'試圖解開我。*我認爲你的措詞很混亂,你沒有把問題分開 – Honey

+0

@Honey關於崩潰的說法是關於單獨拆解的力量。他們檢查無顯然是一個編譯器錯誤,這是首先帶來OP的東西 – luk2302