23

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

用例:用户在地址栏中输入“www.abc.com”。下面抛出错误:

错误域=WebKitErrorDomain 代码=102“帧加载中断”UserInfo=0x19860770 {NSErrorFailingURLKey=file://www.abc.com, NSErrorFailingURLStringKey=file://www.abc.com, NSLocalizedDescription=帧加载中断}

原因:需要在 URL 前加上“http://”

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

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

在 Swift 中,方法不存在?!

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

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

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

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

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

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

4

3 回答 3

65

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)"
于 2014-06-16T15:36:31.953 回答
17

只是为了在这里完整(尽管是第四种方式),这里有你的选择:

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)"
于 2014-06-16T16:01:55.577 回答
8

您可以使用字符串插值:

let site = "www.abc.com"
let url = "http://\(site)"
于 2014-06-16T15:35:48.330 回答