Поддерживает ли NSString нестандартные / неанглийские символы? - PullRequest
1 голос
/ 04 февраля 2010

Я использую парсер xml для заполнения массива. Эта строка: «Calle Mare de Déu de» генерирует исключение на [NSPlaceholderString initwithstring:]. В Snow Leopard (10.6) он сообщает нулевой аргумент, в то время как в Leopard (10.5) он генерирует исключение, но не сообщает об ошибке.

Когда я заменяю строку «Calle Mare de Déu de» на «Calle Mare de Deu de», тогда она работает нормально. Проблема вызвана символом «é».

NSString не поддерживает этот и другие специальные символы?

Спасибо Дипика

1 Ответ

3 голосов
/ 04 февраля 2010

возникает исключение NSPlaceholderString initwithstring:] Аргумент nil для Snow Leapord и для исключения Leapord возникает, но предупреждение не приходит.

Вы получаете исключение, сообщающее, что вы передали аргумент nilпотому что вы передали аргумент nil.

Строка, которую вы передали, была nil.Это не имеет ничего общего с кодировкой строки по двум причинам:

  1. Строки нет.(Если бы вы передали строку, вы бы не передали nil.)
  2. Строки не имеют кодировки;это просто строки символов.Кодировки переводят вас из символов человеческого языка (в строках) в последовательности байтов (в данных).

Более того, если бы у вас была строка для передачи в initWithString:, вам не нужно было бы создаватьстрока, использующая initWithString:, потому что у вас уже есть строка.Если вы хотите скопировать его, вы можете просто отправить ему сообщение copy.

Мы не знаем, что у вас уже есть, что жизненно важно.Пожалуйста, измените ваш вопрос, включив в него код, который получает «строку» из базы данных или из синтаксического анализатора XML и передает ее в initWithString:.

Is It только из-за 'é', что означаетЯ хочу знать, если NSString не поддерживает 'é' или любые другие символы

NSString поддерживает все символы в Юникоде.На практике это означает, что все они.

...