Подтвердить что ты не робот

Objective-C: unichar vs. char

Я немного запутался между unichar и char. Можно ли рассматривать unichar, аналогичный char 's?

Например, могу ли я сделать это:

-(BOOL)isNewLine:(unichar)c {

if(c == '\n')
  return YES;
else
  return NO;

}
4b9b3361

Ответ 1

Да, unichar внутренне unsigned short, поэтому вы можете осмысленно сравнить его с char (если последний является ASCII, но отлично подходит для '\n').

Ответ 2

Соблюдайте осторожность при проверке новой строки, в которой вы знаете формат окончаний вашей строки, поскольку Unix (и современный Mac) использует \n, но Windows использует \r\n, а классический Mac использует\r.

Ответ 3

При сравнении unichars используйте вместо этого:

if ([[NSCharacterSet newlineCharacterSet] characterIsMember:unicharCharacter])
{
    //any type of newline
}
else
{
    //etc
}

Затем вы поймаете все типы новых строк и получите код, который вы можете легко изменить, чтобы соответствовать различным наборам символов (например, whitespaceAndNewlineCharacterSet).

Это большой потенциал с unichars.