显示错误警报的最佳做法

时间:2017-09-21 19:00:50

标签: ios error-handling uialertview

如果出现错误,我在显示警报时遇到问题。

我的想法是:每次我使用完成块从后端下载数据时,如果发生错误,我会发出警报。

query?.findObjectsInBackground(block: { (objects, error) -> Void in
        if error != nil {
            createAlert(error)
            return

        } else if let objects = objects {
}

由于我同时在ViewController中拨打了多个电话,因此可能会发现自己同时发出超过2或3个警报。 "No Connection to the Internet"。 它将不断重新加载警报,这对UI而言是一种痛苦。

解决此问题的最佳做法是什么?

我的解决方案是将所有内容置于Singleton模式中,并确保当前没有显示其他任何警报。

有没有更好的方法?

1 个答案:

答案 0 :(得分:1)

您可能更愿意在当前负责创建警报的类中使用可选属性 var noConnectivityAlert),而不是使用单例模式。 而不是createAlert()方法,而是使用informUserAboutConnectivity()方法。

func informUserAboutConnectivity() {
    // If  noConnectivityAlert is nil
        // the method creates an alert and shows it.

    // If the property is NOT nil
        // do nothing (since the user is already informed).
}

当互联网连接恢复然后再次消失时,App Store中的某些应用会再次显示警报。 在这种情况下,当互联网连接回来时,您可以直接设置noConnectivityAlert = nil,这样当连接丢失时,将很好地处理事情(将创建并显示新警报)。

顺便说一句,在iOS SDK中,单身人士并不经常使用。主要用于提供类的默认和最常见的用例(考虑UserDefaults),或(当然)共享管理器/提供者。