Objective C Unicode символов сравнения - PullRequest
14 голосов
/ 15 июня 2009

Как кодируются сравнения в юникоде? Мне нужно проверить точно так, как показано ниже, проверяя конкретные буквы в строке. Код ниже дросселей: предупреждение: сравнение между указателем и целым числом

for (charIndex = 0; charIndex < [myString length]; charIndex++)
{
   unichar testChar = [myString characterAtIndex:charIndex];

     if (testChar == "A")  
       // do something
     if (testChar == "B")
      // do something
     if (testChar == "C")
      // do something
}

Ответы [ 2 ]

21 голосов
/ 15 июня 2009

Для литералов символов используйте одинарные кавычки:

if (testChar == 'A') NSLog(@"It's an A");

Или представить символ, используя номер кодовой точки:

if (testChar == 0x1e01) NSLog(@"It's an A with a ring below");

Компилятор видит двойные кавычки в виде строки, поэтому строит «A» как эквивалент const char * (что дает вам сообщение об ошибке об указателе).

0 голосов
/ 15 июня 2009

Что вы действительно пытаетесь сделать? Прямые сравнения персонажей необычны. Обычно -compare: или -isEqual: используется для сравнения двух строк. Или NSScanner будет использоваться для анализа компонентов строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...