2010-08-04 2 views
2

Так что я пытаюсь получить данные из XML-потока, исходящего из URL-адреса. Этот URL-адрес настроен на строку поиска, которую вводит пользователь. Есть ли причина, почему этот код не должен работать?NSString и NSUrl неправильно конвертируются

NSString *searchString = "Geoff"; 

NSString *updatedURL = [NSString stringWithFormat:@"http://mysearchpage.com/searchQuery=%@", searchString]; 

NSLog(updatedURL); 
NSURL *url = [[NSURL alloc] initWithString:updatedURL]; 

Теперь это работает отлично для одного поиска слов, но как только я пытаюсь найти как первое и последнее имя, возвращает URL NIL каждый раз. Есть ли какое-либо поведение со строками, которые могут быть причиной этого?

Я даже попытался заменить «" на «% 20», когда строка поиска была добавлена, чтобы увидеть, была ли эта проблема. Я сделал это, используя:

NSURL *url = [[NSURL alloc] initWithString:[updatedURL stringByReplacingOccurrencesOfString:@" " withString:@"%%20"]]; 

любые идеи? Заранее спасибо!

+0

Я предполагаю, что недостающая «не была вашей проблемой, поэтому я добавил ее. –

ответ

11

Вы должны использовать -stringByAddingPercentEscapesUsingEncoding: метод NSString для что:

NSURL *url = [[NSURL alloc] initWithString: 
    [updatedURL stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]; 
+0

Это сделало трюк. Спасибо за быстрый ответ! – gabaum10

0

Если это действительно копия & паста вашего кода, это может быть потому, что searchString пропускает @ -знак. Это должно быть NSString *searchString = @"Geoff";

+0

Нет, это не копия и вставка, я упростил URL-адрес, чтобы было легче понять. Я понимаю, что отсутствует куча вещей. – gabaum10

Смежные вопросы