2009-07-07 15 views
23

मैं एक unichar और एक चार के बीच थोड़ा उलझन में हूँ। क्या मैं अनइचर के चारों के समान व्यवहार कर सकता हूं?उद्देश्य-सी: unichar बनाम char

उदाहरण के लिए, मैं यह कर सकता:

-(BOOL)isNewLine:(unichar)c { 

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

} 

उत्तर

24

हाँ, unichar आंतरिक unsigned short है, तो आप सार्थक एक char के साथ तुलना कर सकते हैं (अगर दूसरी स्थिति ASCII है, लेकिन उस '\n' के लिए ठीक काम करता है)।

6

यूनिक्स (और आधुनिक मैक) के उपयोग के रूप में, आप लाइन लाइन के प्रारूप को जानते हुए नई लाइन के लिए सावधान रहें \ n, लेकिन विंडोज \ r \ n और क्लासिक मैक \ r का उपयोग करता है।

+7

धन्यवाद। मुझे एक कक्षा, एनएससीएचएरिएटरसेट मिला है, जिसमें NSNewlineCharacterSet का उत्पादन करने के लिए एक स्थिर विधि है जिसका मैं तुलना कर सकता हूं। – LeeMobile

0

जब unichars तुलना, बजाय का उपयोग करें:

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

तो फिर तुम नई-पंक्तियों के सभी प्रकार को पकड़ने और कोड आप आसानी से (whitespaceAndNewlineCharacterSet) की तरह विभिन्न वर्ण सेट से मेल करने के संशोधित कर सकते हैं होगा।

यह यूनिकर्स के साथ बड़ा उछाल है।

संबंधित मुद्दे