2016-09-17 17 views
17

Jak mogę zadeklarować adres URL w wersji 3?Zgłaszanie adresu URL w Swift 3

To moja próba Kod:

var messageURL: URL = URL() 

LUB

var messageURL: Foundation.URL = URL() 

Jest to błąd: Nie można powoływać się inicjator dla typu 'url' bez argumentów

Oto niektóre dokumentacja (Swift 3.0) firmy Apple, z którymi mam problemy z implementacją:

Properties whose name conflicts with Foundation types after removing their NS prefix will lead to module-qualified type names. For example, if there is a var URL: NSURL, it will be rewritten as var URL: Foundation.URL

Odpowiedz

56

Swift 3 ma URL (a struct) i NSURL (class, który dziedziczy po ObjC). Sytuacja wygląda jak String i NSString. Masz 2 opcje, aby zbliżyć się do tego:

1: Jeśli znasz adres URL w momencie zgłoszenia:

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

2: Jeśli można tylko dowiedzieć się o adres URL nowszych:

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") 
-1

Podczas migracji do Swift 3 pojawiał się ten sam problem, ale po utknięciu zauważyłem, że stworzyłem klasę przed migracją o nazwie URL, która zakłócała ​​teraz strukturę i problemy związane z Foundation of URL.

-1

W Swift 3 URL ma wiele inicjalizatorów, ale wszystkie z nich pobierają argument, ciąg lub dane.