2014-12-03 23 views
3

我試圖讓我的tableView選擇的行數:直到選擇一些如何在Swift中對選定的UITableView行進行計數。可選的indexPathForSelectedRow

self.tableView.setEditing(true, animated: true) 

tableView.allowsMultipleSelection = true 

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    updateCount() 
} 

func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) { 
    updateCount() 
} 

func updateCount(){ 

    let list = tableView.indexPathsForSelectedRows() as [NSIndexPath] 

    println(list.count) 

一切工作良好。但是,當沒有選擇列,應用程序崩潰「致命錯誤:意外發現零而展開的可選值」。 我想這是因爲選擇是零,但如何寫代碼選配?我試過 很多方法,但是當我取消所有選擇的應用程序仍然崩潰。

+0

但爲什麼你要這麼做? – 2014-12-05 07:09:16

+0

例如,我可以有一個按鈕,「刪除」顯示要刪除的項目數。 – migari 2014-12-05 20:59:51

回答

10

是的,你是在正確的軌道上。發生錯誤是因爲沒有選中行。使用條件結合,像這樣:

func updateCount(){   
    if let list = tableView.indexPathsForSelectedRows() as? [NSIndexPath] { 
     println(list.count) 
    } 
} 
+0

它很好用,謝謝你! – migari 2014-12-03 19:26:43

+1

FYI無()indexPathsForSelectedRows後 – user441058 2016-09-16 22:28:35

2

你可以簡單地做

func updateCount(){ 
    if let list = tableView.indexPathsForSelectedRows { 
     print(list.count) 
    } 
} 
相關問題