web-dev-qa-db-ja.com

Swift=でstringWithFormatを使用してhttp://をURLに追加する方法

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}

理由:URLの先頭に「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];

ご協力ありがとうございました。敬具、キース

23
kmiklas

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

ここで(第4の方法ではありますが)完了するために、次のオプションがあります。

1:Swift 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)"
_
16
Mick MacCallum

文字列補間を使用できます:

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