Я новичок в Swift и пишу приложение, которое считывает данные со сканера, а затем публикует их на веб-странице.Я сейчас беру данные из поля редактирования текста на моей основной раскадровке, и когда я нажимаю кнопку поиска, чтобы вызвать следующий код, выдается следующее исключение.Я установил точку останова и проверил значение temp перед его использованием в URL-адресе и правильно его закрасил (не ноль).Если я введу в поле редактирования, то код работает нормально;открывает страницу, даже если я удаляю содержимое поля редактирования, используя значок очистки (x).
Я не могу понять, какая переменная равна нулю и как исправить или защитить код.Любая помощь приветствуется.
Поток 1: Неустранимая ошибка: неожиданно обнаружен ноль при развертывании Необязательное значение
func setStatus(_ status: String)
{
statusLabel.text = status
}
func processRead(_ data: String?)
{
if (data != nil)
{
var temp: String = data!
setStatus(temp)
temp = "foo.com?data=" + temp
let url: URL = URL(string: temp)! // <<<< THROWS EXCEPTION / BREAK POINT
UIApplication.shared.openURL(url)
}
}
ОБНОВЛЕНИЕ - Исправленный код -
func setStatus(_ status: String)
{
statusLabel.text = status
}
func processRead(_ data: String?)
{
if (data != nil && !data!.isEmpty)
{
let temp = "https://foo.com/data=" + data!.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)!);
if let url = URL(string: temp)
{
setStatus(data!)
UIApplication.shared.openURL(url)
}
else
{
print("Bad URL: " + temp);
}
}
}