2012-01-17 11 views
49

मैं आईओएस के लिए उद्देश्य-सी में प्रोग्रामिंग कर रहा हूं। मैं प्रकार BOOL के स्केलर में एनएसएसटींग प्रकार के ऑब्जेक्ट को पार्स करना चाहता हूं।उद्देश्य-सी में BOOL में NSString को कैसे पार्स करें?

मेरे पास एक मूल्य है, और मुझे पता है कि यह या तो @ "हाँ" या @ "नहीं" होगा, लेकिन हाँ (या) कोई मान एनएसएसटींग नहीं है और मैं बस एनएसएसटींग को बूल में बदलना चाहता हूं।

मैं यह कैसे कर सकता हूं?

यदि आप जानते हैं तो कृपया मुझे उत्तर दें।

पढ़ने के लिए धन्यवाद।

उत्तर

141

मुझे लगता है कि यह है:

BOOL boolValue = [myString boolValue]; 
+0

बहुत धन्यवाद मुझे यह मिला। –

+0

"अब्दुल" का बूलव्यू क्या होगा? कृपया मुझे सुझाव दें। –

+3

@ अब्दुल यासीन, यह 0/झूठा होगा। यह विधि केवल प्रभावी है यदि आपको पता है कि स्ट्रिंग में एक बूलियन मान है; जैसे @ "1", @ "सच", @ "हाँ" आदि। इनके अलावा, बूलवैल्यू हमेशा 0 लौटाएगा; – x4h1d

2
if ([string isEqualToString: @"YES"]) 
    foo(); 
else 
    bar(); 
+0

LOL यू मुझे 6 सेकंड से हराया! हाहा – Steve

+1

यह सही तरीका नहीं है। Bschultz और टॉमी द्वारा अन्य दो उत्तरों देखें। –

+0

टिम टोडी अन्यथा कहता है ;-) –

22

आप शायद का उपयोग करना चाहिए NSString के -boolValue। दस्तावेज़ीकरण को सीधे उद्धृत करने के लिए:

[रिटर्न टी] वह रिसीवर के पाठ का बूलियन मान। पर YES को वापस करता है "वाई", "वाई", "टी", "टी", या अंक 1-9-विधि किसी भी पीछे वाले वर्णों को अनदेखा करता है। रिटर्नकर्ता किसी संख्या के वैध दशमलव पाठ प्रतिनिधित्व के साथ शुरू नहीं होता है तो वापस लौटाता है।

यह आपके इनपुट मामलों से मेल खाता प्रतीत होता है।

+0

बहुत धन्यवाद मुझे यह मिला। –

0

यह शायद सबसे अच्छा, एक सशर्त के साथ हल किया जाएगा उदाहरण के लिए:

if ([myString isEqualToString:@"YES"]) 
    myBool = YES; 
else if ([myString isEqualToString:@"NO"]) 
    myBool = NO; 

आशा यह आप अपने प्रोग्रामिंग के साथ मदद की, अच्छी किस्मत।

+1

यह समाधान सही से दूर है। एक स्ट्रिंग में बूल को स्टोर करने के कई तरीके हैं, और यह केवल एक बहुत विशिष्ट हैडल करता है। एक विधि की कार्यक्षमता को डुप्लिकेट क्यों करें जो पहले ही लागू हो चुका है। – FreeAsInBeer

+0

यह बहुत गंदा तरीका है। – AlKozin

0

यह गुण भी सच लौटना चाहिए यदि स्ट्रिंग 'सही' है यही कारण है कि मुझे लगता है कि विस्तार की जरूरत है ...

extension NSString{ 
var boolValueExtended: Bool { 
    get{ 
     return boolValue || 
      self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()).uppercaseString == "TRUE" 
    } 
} 

}

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