2014-12-03 3 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) 

모든 것이 잘 작동합니다. 그러나 선택한 행이 없을 때 응용 프로그램이 "치명적인 오류 : 예기치 않게 찾을 수 없음 선택 값을 래핑하는 동안 nil"과 충돌합니다. 선택이 무효이기 때문에 생각하지만 Optionals를 사용하여이 코드를 작성하는 방법은 무엇입니까? 나는 많은 선택을 시도했지만 모든 선택을 취소하면 응용 프로그램이 계속 충돌합니다.

+0

을하지만, 왜이 작업을 수행해야 할 수 있습니까? –

+0

예를 들어, 삭제할 항목의 수를 표시하는 "삭제"버튼이있을 수 있습니다. – migari

답변

10

예, 올바른 방향입니다. 행을 선택하지 않아서 오류가 발생했습니다. 조건과 같이 바인딩을 사용 :

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

대단히 감사합니다. – migari

+1

FYI no() after indexPathsForSelectedRows – user441058

2

당신은 단순히

func updateCount(){ 
    if let list = tableView.indexPathsForSelectedRows { 
     print(list.count) 
    } 
} 
관련 문제