Объявление 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 есть много инициализаторов, но все они принимают аргумент, либо строку, либо данные.