empty - Cómo anteponer url con http:// usando stringWithFormat en Swift
swift compare strings (3)
Estoy construyendo un navegador personalizado usando UIWebView.
Caso de uso: el usuario ingresa "www.abc.com" en la barra de direcciones. Error a continuación lanzado:
Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted" UserInfo=0x19860770 {NSErrorFailingURLKey=file://www.abc.com, NSErrorFailingURLStringKey=file://www.abc.com, NSLocalizedDescription=Frame load interrupted}
Motivo: la URL debe ir precedida por "http: //"
Me gustaría usar el método stringWithFormat
de NSString, pero parece que no puedo obtener la sintaxis correcta. En Objective-C, tenemos;
NSString* modifiedURLString = [NSString stringWithFormat:@"http://%@", urlString];
En Swift, el método no está ahí?
var modifiedURLString: String = String(`stringWithFormat not here?!...`)
Entonces intenté mezclar Objective C con Swift:
var modifiedURLString: NSString = [NSString stringWithFormat not here?!...
Entonces intenté directamente Objective-C:
NSString * modifiedURLString = [NSString stringWithFormat: @ "http: //", urlString];
Gracias por tu ayuda. Atentamente, Keith
El equivalente de formatWithString de NSString: es simplemente "format:", como se muestra a continuación, pero no hay una necesidad real de hacerlo para el ejemplo que ha dado. Simplemente agregue cadenas, o use interpolación ...
let urlString = "www.abc.com"
var modifiedURLString = NSString(format:"http://%@", urlString) as String
// or just
modifiedURLString = String(format:"http://%@", urlString)
// or
let simpler = "http://" + urlString
// or use string interplotaion
let simplest = "http:///(urlString)"
Puedes usar interpolación de cadenas:
let site = "www.abc.com"
let url = "http:///(site)"
Solo por el hecho de estar completo aquí (aunque de una cuarta forma), aquí están sus opciones:
1: Forma rápida de usar el stringWithFormat de NSString:
let url = NSString(format: "http://%@", aSuffix)
2: Aproveche la capacidad de Swift para concatenar cadenas con el operador "+".
let url = "http://" + aSuffix
3: Utilice el método stringByAppendingString()
de stringByAppendingString()
.
let url = "http://"
url.stringByAppendingString(aSuffix)
4: Interpolación de cuerdas.
let url = "http:///(aSuffix)"