Swift 2.0错误来自' [NSIndexPath]?'到' [indexpath]'只打开可选的

时间:2015-10-06 12:46:32

标签: ios swift uitableview swift2

嗨,下面的代码在swift1.2中运行正常,但是当我升级到swift 2.0时:

func deselectAllRows() {
    if let selectedRows = tableView.indexPathsForSelectedRows as! [NSIndexPath] {
        for indexPath in selectedRows {
            tableView.deselectRowAtIndexPath(indexPath, animated: false)
        }
    }
}

它显示以下错误:

  

来自' [NSIndexPath]的堕落?'到' [indexpath]'只打开可选的

有关如何解决此问题的任何线索?

2 个答案:

答案 0 :(得分:5)

您不必再强制进行类型转换,indexPathsForSelectedRows会返回正确的类型:

func deselectAllRows() {
    if let selectedRows = tableView.indexPathsForSelectedRows {
        for indexPath in selectedRows {
            tableView.deselectRowAtIndexPath(indexPath, animated: false)
        }
    }
}

答案 1 :(得分:1)

tableView.indexPathsForSelectedRows返回[NSIndexPath]?,因此您无需输入强制转换。你可以这样写:

func deselectAllRows()
{
   if let selectedRows = tableView.indexPathsForSelectedRows
   {
      for indexPath in selectedRows
       {
           tableView.deselectRowAtIndexPath(indexPath, animated: false)
        }
   }
}