it-swarm.com.de

URL in Swift 3 deklarieren

Wie kann ich eine URL in Swift 3 deklarieren?

Dies ist mein versuchter Code:

var messageURL: URL = URL()

OR

var messageURL: Foundation.URL = URL()

Dies ist der Fehler: Der Initialisierer für den Typ 'URL' kann nicht ohne Argumente aufgerufen werden

Hier ist eine Dokumentation (Swift 3.0) von Apple, die Probleme bei der Implementierung hat:

Eigenschaften, deren Name mit Foundation-Typen in Konflikt steht, nachdem das Präfix NS entfernt wurde, führen zu modulqualifizierten Typnamen. Wenn beispielsweise eine var-URL: NSURL vorhanden ist, wird diese als var-URL: Foundation.URL umgeschrieben

21
Albert Ghar

Swift 3 hat URL (eine struct) und NSURL (eine class, die sie von ObjC erbt). Die Situation ist wie String und NSString. Sie haben 2 Möglichkeiten, um dies zu erreichen:

1: Wenn Sie die URL zum Zeitpunkt der Erklärung kennen:

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

2: Wenn Sie die URL erst später erfahren können:

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")
63
Code Different

Als ich zu Swift 3 wechselte, hatte ich dasselbe Problem. Nachdem ich jedoch festgefahren war, stellte ich fest, dass ich vor der Migration eine Klasse mit dem Namen URL erstellte, die jetzt in die URL-Struktur von Foundation eingriff und Probleme machte.

0
Natanel

In Swift 3 hat URL viele Initialisierer, aber alle haben ein Argument, entweder String oder Daten.

0