我正在使用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://”
我想使用NSString的stringWithFormat
方法,但我似乎无法使语法正确。在Objective-C中,我们有;
NSString* modifiedURLString = [NSString stringWithFormat:@"http://%@", urlString];
在Swift中,方法不存在?!
var modifiedURLString: String = String(`stringWithFormat not here?!...`)
然后我尝试将Objective C与Swift混合使用:
var modifiedURLString:NSString = [NSString stringWithFormat not here?!...
然后我尝试了直接的Objective-C:
NSString * modifiedURLString = [NSString stringWithFormat:@“http://”,urlString];
感谢您的帮助。真诚的,基思
答案 0 :(得分:64)
相当于NSString的formatWithString:只是"格式:",如下所示,但是对于你给出的例子,没有必要这样做。只需附加字符串,或使用插值...
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)"
答案 1 :(得分:16)
为了在这里完成(虽然是第4种方式),这里有你的选择:
1:使用NSString的stringWithFormat:
的快捷方式let url = NSString(format: "http://%@", aSuffix)
2:利用Swift的能力将字符串与" +"连接起来。操作
let url = "http://" + aSuffix
3:使用NSString的stringByAppendingString()
方法。
let url = "http://"
url.stringByAppendingString(aSuffix)
4:字符串插值。
let url = "http://\(aSuffix)"
答案 2 :(得分:8)
您可以使用字符串插值:
let site = "www.abc.com"
let url = "http://\(site)"