Какой самый распространенный формат для отображения значимого сообщения пользователю при возникновении ошибки - Swift - PullRequest
0 голосов
/ 28 ноября 2018

Какой самый распространенный способ показать пользователю осмысленное сообщение при возникновении ошибки?

Я использую CoreLocation, чтобы определить местоположение пользователя, и пытаюсь как можно лучше обрабатывать ошибки.

У меня есть следующий код, который показывает предупреждение при возникновении ошибки.

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

    CLGeocoder().reverseGeocodeLocation(manager.location!, completionHandler: {(placemarks, error)-> Void in
        /// Show ERROR
        if error != nil {               
            let alert = UIAlertController(title: "Error", message: error!.localizedDescription.description, preferredStyle: UIAlertController.Style.alert)
            alert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default, handler: { action in
                /// stop updating
                self.locationManager.stopUpdatingLocation()
                return
            }))
            self.present(alert, animated: true, completion: nil)
            return
        }

        if placemarks!.count > 0 {
            // do stuff here with the found placemark
        }else{
            print("No placemarks found.")
        }
    })
}

Например, если нет подключения к Интернету, пользователь увидит следующую ошибку ...

Ошибка: операция не может быть завершена.(kCLErrorDomain error 2.)

Так вы обычно представляете сообщение об ошибке пользователю, или вместо этого вы вместо сообщения об ошибке заменяете какое-то общее сообщение типа ... "Извините, но мыНе удалось подключиться к серверу. Убедитесь, что вы подключены к Интернету "?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Да, UIAlertController, вероятно, является наиболее стандартным способом сообщения об ошибке пользователю, если вы не хотите проявить фантазию и приложить усилия для создания собственного настраиваемого подпредставления об ошибке.

Одна из 10 эвристик проектирования пользовательского интерфейса гласит:

Сообщения об ошибках должны быть выражены простым языком (без кодов), точно указать проблему,и конструктивно предложить решение.

Итак, я бы предложил написать собственный код ошибки для этого экземпляра, например "There was an error updating your location" вместо использования error.localizedDescription.description.Это улучшит удобство использования вашего приложения для пользователей.

0 голосов
/ 28 ноября 2018

Обычно сообщения об ошибках должны быть понятны пользователю.

Подобные ошибки

Error: The operation could't be completed. (kCLErrorDomain error 2.)

обычно предназначены для разработчиков, чтобы понять, почему эта ошибка возникает.Он предоставляется компилятором и не подходит для представления этого пользователю как есть.Поэтому для приложения реального времени лучше использовать общие сообщения для всех сообщений об ошибках, а также для сообщений об успехах.

...