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];
ご協力ありがとうございました。敬具、キース
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)"
ここで(第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)"
_
文字列補間を使用できます:
let site = "www.abc.com"
let url = "http://\(site)"