Как добавить URL-адрес с помощью http://с помощью 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}
Причина: URL-адрес должен быть добавлен с помощью "http://"
Я хотел бы использовать метод stringWithFormat
для NSString, но я не могу понять, что синтаксис правильный. В 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];
Благодарим вас за помощь. С уважением, Кейт
Ответы
Ответ 1
Эквивалент формата NSStringWithString: это просто "формат:", как показано ниже, но нет реальной необходимости делать это в примере, который вы указали. Просто добавьте строки или используйте интерполяцию...
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)"
Ответ 2
Просто ради того, чтобы быть полным здесь (хотя и с 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)"
Ответ 3
Вы можете использовать интерполяцию строк:
let site = "www.abc.com"
let url = "http://\(site)"