Как обернуть функцию попробуйте перехватить, чтобы принудительно развернуть ноль не вылетает приложение? - PullRequest
0 голосов
/ 30 мая 2018

Я часто получаю эти ошибки, когда вызываемая функция использует что-то вроде:

 optionalVar!

"Неожиданно обнаружен ноль при развертывании необязательного"

Яне знаете, как обращаться с функциями, которые иногда не работают, если я не всегда контролирую внутренний код?

Есть ли способ защиты от таких сбоев?На большинстве языков я мог бы поставить try catch вокруг большинства вещей.

Когда я делаю что-то вроде:

if let result = Blah.someExternalFunction(html: "some bad html") { } 

Это все равно может завершиться ошибкой внутри "someExternalFunction", даже после попытки добавить try?перед ним

1016 * Спасибо

1 Ответ

0 голосов
/ 30 мая 2018

То, что вы ищете, это if let

Если у вас есть дополнительное значение, вы можете просто сделать что-то вроде этого, чтобы «попробовать» его:

if let val = optionalVar{
    //val is already unwrapped
}
else{//it was nil}

Другой вариантдолжен использовать оператор guard.Это работает аналогично.

guard let val = optionalVar 
else{
    //the value is nil, so you need to exit the current function
    return
}
//'val' is now unwrapped for any code below the guard-else statement
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...