Как избежать NSString для использования в NSURL?

Получил этот код для моей кнопки отправки:

NSString* urlString = [NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", messageBox.text stringByAddingPercentEscapesUsingEncoding : NSUFT8StringEncoding];
NSURL *add = [NSURL URLWithString:urlString];

Однако я получаю сообщение об ошибке "Ожидаемое": '

Ответ 1

Вам нужно отделить два строковых вызова

NSString* urlString = [[NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", messageBox.text] stringByAddingPercentEscapesUsingEncoding : NSUTF8StringEncoding];
NSURL *add = [NSURL URLWithString:urlString];

Ответ 2

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

NSString* urlString = [NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", [messageBox.text stringByAddingPercentEscapesUsingEncoding : NSUFT8StringEncoding]];

Еще лучше, для удобства чтения и упрощения отладки, сделайте следующее:

NSString *escapedText = [messageBox.text stringByAddingPercentEscapesUsingEncoding:NSUFT8StringEncoding];
NSString* urlString = [NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", escapedText];

Ответ 3

Попробуйте:

NSString* urlString = [[NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", messageBox.text] stringByAddingPercentEscapesUsingEncoding : NSUFT8StringEncoding];

Ответ 4

Отделите метод NSString, чтобы увидеть его:

NSString* urlString = [[NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", messageBox.text] stringByAddingPercentEscapesUsingEncoding : NSUFT8StringEncoding];

Ответ 5

NSURL автоматически закодирует строку при вызове NSURL urlWithString, этот код не нужен.