NSString stringWithContentsOfURL устарел. Что мне делать?

#xml #ios #nsstring #nsarray

#xml #iOS #nsstring #nsarray

Вопрос:

Я написал некоторый код, который использует stringWithContentsOfURL , но оказывается, что теперь он устарел. Можете ли вы помочь мне заменить его? Вот мой код:

 NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]];
NSArray *listItems = [locationString componentsSeparatedByString:@","];
  

Кроме того, может у кого-нибудь есть какой-нибудь пример кода, чтобы показать, как это работает? В какой кодировке был выполнен исходный код (в моих 2 строках выше)?

Я хочу поддерживать совместимость, так что мне следует выбрать для кодировки? Что означает ошибка и для чего она используется?

Ответ №1:

Использовать stringWithContentsOfURL:encoding:error:

РЕДАКТИРОВАТЬ: Вот ваш код, использующий вышеупомянутый метод:

 NSError *error = nil;
NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString] encoding:NSUTF8StringEncoding error:amp;error];
NSArray *listItems = [locationString componentsSeparatedByString:@","];
  

Вы можете изменить NSUTF8StringEncoding соответствующим образом любые данные, которые вы импортируете.

Комментарии:

1. Если данные поступают из Интернета? например maps.google.com/maps/geo?q=%@amp;output=csv или localserver.local/MyServices.php?q=1298amp;output =csv

2. Если вы спрашиваете, NSUTF8StringEncoding будет ли это работать, то да, это должно работать нормально. Просто скопируйте и вставьте мой код в свой проект, и он должен работать на 100%.

3. в предоставленном коде вы использовали NSUTF8StringEncoding . Буду ли я использовать это для всех данных, передаваемых через Интернет (например, с помощью Google Maps или другого веб-сервера)?

4. Да, если вы читаете текст. Вы можете прочитать больше о UTF8 здесь: en.wikipedia.org/wiki/UTF-8

5. Спасибо EDC 🙂 Я почитаю об этом. Какие еще существуют варианты кодирования?

Ответ №2:

В ссылке на NSString сказано следующее:

Вместо этого используйте stringWithContentsOfURL:encoding:error: или stringWithContentsOfURL:usedEncoding:error: .

Комментарии:

1. у вас есть пример кода, чтобы показать, как это работает? Я действительно в замешательстве. В какой кодировке был выполнен исходный код (в моих 2 строках выше)?