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.
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")
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.
Dans Swift 3, l'URL a de nombreux initialiseurs mais tous prennent un argument, sous forme de chaîne ou de données.