Объявление URL в Swift 3

Как я могу объявить URL в swift 3?

Это мой код:

var messageURL: URL = URL()

ИЛИ

var messageURL: Foundation.URL = URL()

Это ошибка: не удается вызвать инициализатор для типа "URL" без аргументов

Вот некоторая документация (Swift 3.0) от Apple, с которой у меня возникают проблемы:

Свойства, имя которых конфликтует с типами Foundation после удаления префикса NS, приведут к именам типов с квалификацией модуля. Например, если есть URL-адрес var: NSURL, он будет переписан как var URL: Foundation.URL

Ответы

Ответ 1

Swift 3 имеет URL (a struct) и NSURL (a class, который он наследует от ObjC). Ситуация похожа на String и NSString. У вас есть 2 варианта:

1: Если вы знаете URL-адрес во время объявления:

let url = URL(string: "https://www.apple.com")

2: Если позже вы узнаете о URL-адресе:

var url: URL!

// You can check if the variable is initialized by checking it against nil:
//     if url == nil { /* not initialized */ }

// When you are ready to assign it a value:
url = URL(string: "https://www.apple.com")

Ответ 2

Я столкнулся с той же проблемой, когда перешел на Swift 3, но после того, как я застрял, я понял, что создал класс перед миграцией под названием URL, который теперь вмешивается в структуру Foundation URL и создает проблемы.

Ответ 3

В Swift 3 URL есть много инициализаторов, но все они принимают аргумент, либо строку, либо данные.