无法将类型'(_)throws->()'的值转换为预期的参数类型'(((UIAlertAction)-> Void)?

时间:2019-07-17 09:47:39

标签: ios swift

首先,非常感谢您对我的帮助。我不明白此错误,无法找到解决方案。

我查看了其他答案,但它们似乎没有帮助。这是我的代码。该错误显示在let操作行上。

{{1}}

}

  

错误:无法将类型'(_)throws->()'的值转换为预期参数类型'(((UIAlertAction)-> Void)?'

1 个答案:

答案 0 :(得分:0)

三个问题:

  1. 操作中的参数必须是实例,而不是类型

    let action = UIAlertAction(title: "Add item", style: .default) { action in
    

    或者如果操作未使用

    let action = UIAlertAction(title: "Add item", style: .default) { _ in
    
  2. Data.write(to:..必须为data.write(to:..

  3. 第三个问题导致(有点误导)错误消息:data行必须位于do块内。该错误表明do语句周围没有try

    do {
        let data = try encoder.encode(self.itemArray)
        try data.write(to: self.dataFilePath!)
     }
     catch {
        print("Error encoding item array, \(error)")
    }