Как предупредить пользователя с помощью alert, если он не выполнил правильное действие?

#swift #notifications #alert

#swift #уведомления #предупреждение

Вопрос:

У меня есть приложение для фотокамеры, которое также может сканировать QR-коды и считывать их. У меня также есть кнопка, которая открывает ссылку на QR-код при ее нажатии. Не могли бы вы, пожалуйста, помочь мне, как отобразить уведомление о предупреждении для пользователей, которые сканируют коды, которые не работают. В тот момент, когда я сканирую поддельный QR-код, приложение вылетает и перестает работать. Я хочу предотвратить это и отобразить уведомление примерно такого типа: «Этот QR-код не работает, пожалуйста, попробуйте другой».

На данный момент я создал этот код:

 func openJSON(_ Person: String)
{
let jsonData1 = (try? Data(contentsOf: URL(string: "(transffered text)")!)) as Data!

var error : NSError?
let ReadableJSON1 = JSON ( data:jsonData1!, options: JSONSerialization.ReadingOptions.mutableContainers, error: nil )


if (error != nil){

    let myAlert = UIAlertController(title: "Please try another QR", message: error?.localizedDescription, preferredStyle: .alert) 
    let okAction = UIAlertAction(title: "Ok", style: .default, handler: nil)
    myAlert.addAction(okAction)
    self.present(myAlert, animated: true, completion: nil)

    return
}
  

Комментарии:

1. Вы получаете ошибку при попытке представить контроллер оповещений?

Ответ №1:

Вы устанавливаете ошибку как nil в своем методе JSON, поэтому ваша переменная error всегда будет равна nil. Убедитесь, что вы используете последнюю версию SwiftyJSON.swift.

 var error: NSError?

let ReadableJSON1 = JSON(data: jsonData1!, options: .mutableContainers, error: amp;error)
  

Комментарии:

1. попробуйте без amp;

2. Хорошо, каков ожидаемый тип параметра error в JSON() ? Является ли это необязательным NSErrorPointer ? Щелкните правой кнопкой мыши используемый вами метод инициализации JSON и выберите перейти к определению.

3. Хорошо, когда вы делаете ошибку nil в JSON() , вы получаете ошибку компиляции или приложение запускается? Кроме того, какую версию SwiftyJSON вы используете?