Преобразовать строку в URL (почему получается переменная nil) - PullRequest
1 голос
/ 29 сентября 2019

Я пытаюсь создать переменную URL из строкового значения.Я не понимаю, почему результирующий URL равен nil

Я настроил новый проект MacOS Xcode, поместил простую кнопку в View, создал действие для этой кнопки и реализовал следующий код.Полученный URL равен nil.

Я пробовал то же самое на игровой площадке Swift, и там это сработало ...

    @IBAction func buttonClicked(_ sender: Any) {
        let urlAsString = "http://www.google.de/"
        let url = URL(string: urlAsString)

        if url != nil {
            // Do work...
        }
    }

urlAsString равно "http://www.google.de/", но URL равно nil

отладчик

1 Ответ

0 голосов
/ 29 сентября 2019

Вы нашли ошибку в отладчике!Его легко воспроизвести:

enter image description here

Мы остановились на точке останова внутри условия.Очевидно, что url это , а не nil, иначе нас бы здесь не было.

Другой способ доказать это - po url в консоли (см. Справа внизу).этого снимка экрана):

enter image description here

Тем не менее, url отображается как nil как во всплывающей подсказке, так и в списке переменных.Таким образом, отладчик просто лжет вам: url не ноль.Не волнуйся, будь счастлив.Ваш код работает нормально.

EDIT Ошибка связана с наложением Swift Foundation.Если вы измените объявление url на следующее:

let url = NSURL(string: urlAsString)

... тогда все будет работать как положено.

...