Jestem trochę zdezorientowany między unichar i char. Czy mogę traktować unichar podobnie jak char?Objective-C: unichar vs. char
Na przykład, mogę to zrobić:
-(BOOL)isNewLine:(unichar)c {
if(c == '\n')
return YES;
else
return NO;
}
Jestem trochę zdezorientowany między unichar i char. Czy mogę traktować unichar podobnie jak char?Objective-C: unichar vs. char
Na przykład, mogę to zrobić:
-(BOOL)isNewLine:(unichar)c {
if(c == '\n')
return YES;
else
return NO;
}
Tak, unichar jest wewnętrznie unsigned short
, więc można sensownie porównać go z char
(jeżeli jest ASCII, ale to działa dobrze dla '\n'
).
Uważnie sprawdź, czy znasz znak końca linii, ponieważ Unix (i współczesny Mac) używają \ n, ale Windows używa \ r \ n, a klasyczny Mac używa \ r.
Porównując unichars rozważyć zamiast przy użyciu:
if ([[NSCharacterSet newlineCharacterSet] characterIsMember:unicharCharacter])
{
//any type of newline
}
else
{
//etc
}
Wtedy złapać wszystkie rodzaje nowych linii i posiadają kod można łatwo modyfikować, aby dopasować różne zestawy znaków (jak whitespaceAndNewlineCharacterSet).
To jest wielka zaleta z Unichars.
Dzięki. Znalazłem klasę NSCharacterSet, która ma statyczną metodę tworzenia NSNewlineCharacterSet, którą mogę porównać. – LeeMobile