web-dev-qa-db-fra.com

Déclaration d'URL dans Swift 3

Comment déclarer une URL dans Swift 3?

Ceci est ma tentative de code:

var messageURL: URL = URL()

OR

var messageURL: Foundation.URL = URL()

C'est l'erreur: impossible d'appeler l'initialiseur pour le type 'URL' sans argument

Voici une documentation (Swift 3.0) d'Apple que j'ai du mal à mettre en œuvre:

Les propriétés dont le nom est en conflit avec les types Foundation après la suppression de leur préfixe NS conduiront à des noms de type qualifiés de module. Par exemple, s'il existe une URL var: NSURL, elle sera réécrite sous la forme d'une URL var: Foundation.URL.

21
Albert Ghar

Swift 3 a URL (un struct) et NSURL (un class, dont il hérite de ObjC). La situation est comme String et NSString. Vous avez 2 options pour aborder ceci:

1: Si vous connaissez l'URL au moment de la déclaration:

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

2: Si vous ne pouvez connaître l’URL que plus tard:

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

Je rencontrais le même problème lorsque j'ai migré vers Swift 3 mais, après avoir été bloqué, je me suis rendu compte que j'avais créé une classe avant la migration appelée URL, qui interférait maintenant avec la structure URL de Foundation.

0
Natanel

Dans Swift 3, l'URL a de nombreux initialiseurs mais tous prennent un argument, sous forme de chaîne ou de données.

0
Mohsen Hossein pour