Подтвердить что ты не робот

Как добавить 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];

Благодарим вас за помощь. С уважением, Кейт

4b9b3361

Ответ 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)"