2009-07-07 30 views
23

我在unichar和char之間有點混淆。我可以將unichar與char相似嗎?Objective-C:unichar與char

例如,我可以做到這一點:

-(BOOL)isNewLine:(unichar)c { 

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

} 

回答

24

是的,單字符是內部unsigned short,這樣你就可以將其與char比較出有意義的(如果後者是ASCII,但對於'\n'正常工作)。

6

小心檢查換行符,您知道行結尾的格式,因爲Unix(和現代Mac)使用\ n,但Windows使用\ r \ n並且經典Mac使用\ r。

+7

謝謝。我找到了一個類NSCharacterSet,它有一個靜態方法來生成我可以比較的NSNewlineCharacterSet。 – LeeMobile 2009-07-08 17:56:30

0

當比較單字符,而不是考慮使用:

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

然後,你將捕獲所有類型的換行,並有代碼,你可以很容易地修改,以匹配不同的字符集(如whitespaceAndNewlineCharacterSet)。

這是與unichars的大好處。