Сравнение символов Unicode Objective C

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

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
}

Ответы

Ответ 1

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

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

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

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

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

Ответ 2

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