变量“警报”已写入但从未读取

时间:2019-07-07 04:37:12

标签: swift

我有一个警报框,它会返回一些我遇到麻烦的警告,并予以清除。

let alert = UIAlertController(title: "Delete the group?", message: "The group is removed permanently", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Cancel", style: .default, handler: { [weak alert] (_) in
    self.dismiss(animated: true, completion: nil)
}))
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { [weak alert] (_) in
    // Perform the serverside action here and dismiss
}))

self.present(alert, animated: true, completion: nil)

两个addAction-lines均返回“变量'alert'已写入但从未读取”的警告。我不明白,因为我在同一范围的“现在”行中使用了它。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我将所有警报都放在一个单独的班级中

class AlertViewController {    
    func someAlert(with title: String?, message: String?, viewController: UIViewController) {
        let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert)
        let someAction = UIAlertAction(title: "Action Title", style: .default) { (_) in
            //Perform your action here
        }
        alertController.addAction(someAction)
        let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
        alertController.addAction(cancelAction)
        viewController.present(alertController, animated: true, completion: nil)
    }
}

如果您使用style: .cancel,它将自动关闭警报。此外,作为更好的用户体验,包括此.cancel的用户将可以点击视图上的任意位置以消除警报。

您可以在需要时调用此操作;

AlertViewController.someAlert(with: "Title", message: "Message", viewController: self)

自我是您希望呈现的UIViewController