从var返回UIAlertController

时间:2018-01-27 00:04:19

标签: ios swift

我正在尝试使用计算属性返回警报控制器,但是我收到错误“无法将类型的值'() - > _'转换为指定类型'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
        }

    })
}

1 个答案:

答案 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) -> () = { ... }