错误:'inout IndexPath' 不能转换为 'IndexPath'

Posted

技术标签:

【中文标题】错误:\'inout IndexPath\' 不能转换为 \'IndexPath\'【英文标题】:Error:'inout IndexPath' is not convertible to 'IndexPath'错误:'inout IndexPath' 不能转换为 'IndexPath' 【发布时间】:2016-12-27 05:24:35 【问题描述】:

我有一个 TableViewController,其中包含使用 CoreData 的数据条目列表。我也有带有 TextView 的 ViewController。我已经完成了对项目的添加、保存和删除等操作。现在我正在通过将选定的 TableViewCell 链接到下一个 ViewController 上的 TextView 来进行编辑。但是,我收到错误,因为“inout IndexPath”不能转换为“IndexPath”。如何解决这个错误?

【问题讨论】:

var indexPath : IndexPath = tableView.indexPathForSelectedRow!这是错误,它不能像那样转换 Himanshu Moradiya @先生,请详细说明解决方案??我是新来的 swift !! 如果我的代码中有任何查询,请检查我的答案,然后发表评论。 确保您的 tableview 允许选择权限。如果没有,那么你可以像 tableView.allowsSelection = true jignesh Vadadoriya@ 它允许先生!! 【参考方案1】:
func getIndexPathForSelectedCell() -> IndexPath?

        var indexPath2:IndexPath?

        if TABLEVIEW.indexPathsForSelectedItems!.count > 0 
            indexPath2 = TABLEVIEW.indexPathsForSelectedItems![0]
        
        return indexPath2
 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
     if (segue.identifier == "detailView")
        
             print("Segue Clicked.  werwerewrere..................................")
            if let indexPath2 = getIndexPathForSelectedCell()
            
                // here write code for move to next controller.
               let YOUR_NEXT_CONTROLLER_OBJECT = segue.destination as! YOUR_NEXT_CONTROLLER_CLASS_NAME
               YOUR_NEXT_CONTROLLER_OBJECT.KEY =  PASS_DATA_VALUE
            
        


【讨论】:

评论不用于扩展讨论;这个对话是moved to chat。【参考方案2】:
let indexPathForSelectedRow = tableView.indexPathForSelectedRow
let row: Int                = (indexPathForSelectedRow?.row)!
print(row);

【讨论】:

以上是关于错误:'inout IndexPath' 不能转换为 'IndexPath'的主要内容,如果未能解决你的问题,请参考以下文章

swift 无法将类型“[Liquor]”的值转换为预期的参数类型“inout _”

无法将“Int”类型的值转换为预期的参数类型“(inout UnsafeMutableBufferPointer<_>, inout Int) throws -> Void”

导致“无法将不可变作为 inout 传递”的 Swift 3 转换 [重复]

Swift:错误将 self 作为 inout 参数传递

Swift 3.0 错误:转义闭包只能按值显式捕获 inout 参数

在FPGA的开发中,如何对inout信号进行赋值?