Declarando URL en Swift 3
xcode swift3 (3)
¿Cómo puedo declarar una URL en swift 3?
Este es mi código de intento:
var messageURL: URL = URL()
O
var messageURL: Foundation.URL = URL()
Este es el error: no se puede invocar el inicializador para el tipo ''URL'' sin argumentos
Aquí hay algo de documentación (Swift 3.0) de Apple que tengo problemas para implementar:
Las propiedades cuyo nombre entra en conflicto con los tipos de Foundation después de eliminar su prefijo NS darán lugar a nombres de tipo calificados por módulo. Por ejemplo, si hay una URL var: NSURL, se volverá a escribir como URL var: Foundation.URL
En Swift 3, la URL tiene muchos inicializadores, pero todos ellos toman un argumento, ya sea una cadena o datos.
Me encontré con el mismo problema cuando migré a Swift 3 pero, después de quedarme atascado, me di cuenta de que hice una clase antes de la migración llamada URL
que ahora estaba interfiriendo con la estructura de URL
de Foundation y estaba generando problemas.
Swift 3 tiene una URL
(una struct
) y NSURL
(una class
, que hereda de ObjC). La situación es como String
y NSString
. Tienes 2 opciones para abordar esto:
1: Si conoce la URL en el momento de la declaración:
let url = URL(string: "https://www.apple.com")
2: Si solo puedes descubrir la URL más adelante:
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")