2010-09-22 20 views
12

क्या एनएसएआरएआरई बूल वैल्यू की सरणी रख सकता है?एनएसएआरएआरई और बूल वैल्यू

निम्नलिखित कोड

BOOL b = NO; 
NSMutableArray *array = [[NSMutableArray alloc] init]; 

[array addObject:[NSNumber numberWithBool:b]]; 

NSLog(@"value is %d", [array objectAtIndex:0]); 

चलाता है लेकिन, मैं अपेक्षा के अनुरूप नहीं के लिए 0 मान नहीं मिलता है।

BOOL b = YES; 

[array addObject:[NSNumber numberWithBool:b]]; 

आप बूलियन मूल्यों को पुनः प्राप्त करने, इस का उपयोग करना चाहते हैं: इसके बजाय, इस मैं क्या मिलेगा

मूल्य है 37736096

उत्तर

39

हाँ, बस NSNumber में बूलियन्स लपेट है:

BOOL b = [[array objectAtIndex:i] boolValue]; 
// only if you know for sure it contains a boolean 
+0

तुम क्यों bool नहीं एक बड़ी संख्या हो जाता है व्याख्या कर सकते हैं? क्या यह एक यादृच्छिक मूल्य है? धन्यवाद। – chenyi1976

+2

यह अपनी सामग्री के बजाय, NSNumber ऑब्जेक्ट का पता है। ऐसा इसलिए है क्योंकि आप कॉल करने के लिए भूल गए- boolValue –

4

फिलिप उत्तर को पूरा करने के लिए, आपको लिटरल स्ट्रिंग int का उपयोग करना चाहिए में उत्पादित ऐप्पल एलएलवीएम कंपाइलर संस्करण 4.0 के रिलीज के साथ XCode 4.4

आपका कोड इस तरह दिखेगा:

NSMutableArray *array = [[NSMutableArray alloc] init]; 

array[0] = @YES; 

//Value is 1 
NSLog(@"Value is %d:", [array[0] boolValue]); 
+0

... और आउटपुट क्या होना चाहिए? –

+0

% d आउटपुट को किसी संख्या में प्रारूपित करेगा ताकि आप "मान 1 है" – tiguero

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