如何在Swift中使用stringWithFormat在http://中添加url

kmi*_*las 23 string stringwithformat swift

我正在使用UIWebView构建自定义浏览器.

使用案例:用户在地址栏中输入"www.abc.com".抛出以下错误:

Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted" UserInfo=0x19860770 {NSErrorFailingURLKey=file://www.abc.com, NSErrorFailingURLStringKey=file://www.abc.com, NSLocalizedDescription=Frame load interrupted}

原因:网址需要添加"http://"

我想使用stringWithFormatNSString 的方法,但我似乎无法得到正确的语法.在Objective-C中,我们有;

NSString* modifiedURLString = [NSString stringWithFormat:@"http://%@", urlString];
Run Code Online (Sandbox Code Playgroud)

在Swift中,方法不存在?!

var modifiedURLString: String = String(`stringWithFormat not here?!...`)
Run Code Online (Sandbox Code Playgroud)

然后我尝试将Objective C与Swift混合:

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

然后我尝试了直接的Objective-C:

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

谢谢您的帮助.真诚的,基思

Gri*_*mxn 64

相当于NSString的formatWithString:只是"format:",如下所示,但是对于你给出的例子,没有必要这样做.只需附加字符串,或使用插值...

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)"
Run Code Online (Sandbox Code Playgroud)


Mic*_*lum 16

只是为了在这里完成(虽然是第四种方式),这里有你的选择:

1:使用NSString的stringWithFormat的快捷方式:

let url = NSString(format: "http://%@", aSuffix)
Run Code Online (Sandbox Code Playgroud)

2:利用Swift的功能将字符串与"+"运算符连接起来.

let url = "http://" + aSuffix
Run Code Online (Sandbox Code Playgroud)

3:使用NSString的stringByAppendingString()方法.

let url = "http://"
url.stringByAppendingString(aSuffix)
Run Code Online (Sandbox Code Playgroud)

4:字符串插值.

let url = "http://\(aSuffix)"
Run Code Online (Sandbox Code Playgroud)


Fer*_*cio 8

您可以使用字符串插值:

let site = "www.abc.com"
let url = "http://\(site)"
Run Code Online (Sandbox Code Playgroud)