简体   繁体   English

Swift 2.0错误来自'[NSIndexPath]?'到'[indexpath]'只能解包可选

[英]Swift 2.0 error Downcast from '[NSIndexPath]?' to '[indexpath]' only unwraps optional

Hi below code was working fine in swift1.2 but when I upgraded to swift 2.0: 嗨下面的代码在swift1.2中工作正常,但当我升级到swift 2.0时:

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

It shows the following error : 它显示以下错误:

Downcast from '[NSIndexPath]?' 来自'[NSIndexPath]?' to '[indexpath]' only unwraps optional 到'[indexpath]'只能解包可选

Any clue on how to resolve this issue? 有关如何解决此问题的任何线索?

You don't have to force a typecast anymore, indexPathsForSelectedRows returns the right type: 您不必再强制进行类型转换, indexPathsForSelectedRows返回正确的类型:

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

The tableView.indexPathsForSelectedRows returns [NSIndexPath]? tableView.indexPathsForSelectedRows返回[NSIndexPath]? , so you don't need to type cast it. ,所以你不需要输入它。 You can just write it like: 你可以这样写:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM