swift xcode url swift3

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