Области кодирования в UITextView / UITextField к Формату ссылки

Вы ищете форматирование строки, которое в Python основано на функции sprintf в C.

print "[%s, %s, %s]" % (1, 2, 3)

Для получения полной ссылки смотрите здесь: http://docs.python.org/library/stdtypes.html#string-formatting

8
задан bcsantos 9 June 2009 в 14:20
поделиться

2 ответа

Вы не должны экранировать всю строку с помощью URL-адреса, вы должны экранировать URL-адрес динамических компонентов. Попробуйте

NSString *urlStr = [NSString stringWithFormat:@"http://server.com/file.php?name=%@&tags=%@&entry=%@",
                        [nameField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
                        [tagsField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
                        [dreamEntry.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
                        nil];
NSURL *url = [NSURL URLWithString:urlStr];

Вторая проблема с вашим кодом (и, несомненно, причина нечетной печати) заключается в том, что вы передаете строку непосредственно в NSLog, поэтому она обрабатывается как строка формата. Вместо этого вам нужно использовать

NSLog(@"%@", encodedString);

. Это заставит его печатать, как ожидалось.

Изменить: Третья проблема с вашим кодом заключается в том, что вы смешиваете автоматически выпущенные и собственные объекты, а затем освобождаете их все в конце. Взгляните на 3 объекта, которые вы создаете и которые впоследствии отпустите. Один из них не должен не будет выпущен позже, потому что он был создан методом, который не начинался со слов alloc, copy или new. Определение объекта, о котором идет речь, - это упражнение, оставленное читателю.

14
ответ дан 5 December 2019 в 05:08
поделиться

Вы можете взять свой URL-адрес и использовать:

NSString *urlStr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?name=%@&tags=%@&entry=%@",nameField.text, tagsField.text, dreamEntry.text];

NSString *encStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
0
ответ дан 5 December 2019 в 05:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: