我正在尝试使用计算属性返回警报控制器,但是我收到错误“无法将类型的值'() - > _'转换为指定类型'UIAlertController'”我对iOS开发很新来自C开发后,我希望有人可以解释我们错了。代码示例如下:
@objc func saveButtonPressed(_ sender: UIBarButtonItem){
var displayErrorController: UIAlertController = {
let controller = UIAlertController(title: "Field not valid !",
message: "Please fill out form",
preferredStyle: .alert)
controller.addAction(UIAlertAction(title: "OK", style: .ok, handler: nil))
return controller
}
form.rows.forEach({
if !$0.wasChanged {
self.present(displayErrorController, animated: true, completion: nil)
return
}
})
}
答案 0 :(得分:2)
您正在为变量分配一个返回UIAlertController
的块,但您没有执行它。
var displayErrorController: UIAlertController = {
let controller = UIAlertController(title: "Field not valid !",
message: "Please fill out form",
preferredStyle: .alert)
controller.addAction(UIAlertAction(title: "OK", style: .ok, handler: nil))
return controller
}()
如果您想将其保留为计算属性,则需要将属性类型更改为var displayErrorController: (UIAlertController) -> () = { ... }