web-dev-qa-db-fra.com

Comment ajouter une URL avec http: // en utilisant stringWithFormat dans Swift

Je crée un navigateur personnalisé en utilisant UIWebView.

Cas d'utilisation: l'utilisateur entre "www.abc.com" dans la barre d'adresse. Erreur ci-dessous levée:

Domaine d'erreur = WebKitErrorDomain Code = 102 "Chargement de trame interrompu" UserInfo = 0x19860770 {NSErrorFailingURLKey = fichier: //www.abc.com, NSErrorFailingURLStringKey = fichier: //www.abc.com, NSLocalizedDescription = Chargement de trame interrompu}

Raison: l'URL doit être précédée de "http: //"

Je voudrais utiliser la méthode stringWithFormat de NSString, mais je n'arrive pas à obtenir la syntaxe correcte. Dans Objective-C, nous avons;

NSString* modifiedURLString = [NSString stringWithFormat:@"http://%@", urlString];

Dans Swift, la méthode n'est pas là?!

var modifiedURLString: String = String(`stringWithFormat not here?!...`)

J'ai ensuite essayé de mélanger Objective C avec Swift:

var modifiedURLString: NSString = [NSString stringWithFormat not here?!...

Ensuite, j'ai essayé Objective-C directement:

NSString * modifiedURLString = [NSString stringWithFormat: @ "http: //", urlString];

Merci de votre aide. Cordialement, Keith

23
kmiklas

L'équivalent du formatWithString de NSString est simplement "format:", comme indiqué ci-dessous, mais il n'y a pas vraiment besoin de le faire pour l'exemple que vous avez donné. Ajoutez simplement des chaînes ou utilisez l'interpolation ...

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

Juste pour être complet ici (bien que d'une 4ème façon), voici vos options:

1: Swift façon d'utiliser stringWithFormat de NSString:

let url = NSString(format: "http://%@", aSuffix)

2: Profitez de la capacité de Swift à concaténer des chaînes avec l'opérateur "+".

let url = "http://" + aSuffix

3: Utilisez la méthode stringByAppendingString() de NSString.

let url = "http://"
url.stringByAppendingString(aSuffix)

4: interpolation de chaînes.

let url = "http://\(aSuffix)"
16
Mick MacCallum

Vous pouvez utiliser l'interpolation de chaînes:

let site = "www.abc.com"
let url = "http://\(site)"
8
Ferruccio