Как избежать 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, этот код не нужен.