2012-09-16 13 views
5

मेरे पास एक वैरिएबल है जो JSON फ़ीड से खींचा जा रहा है।शब्दकोश से बुलियन मूल्य की जांच।

attending var type is: __NSCFBoolean 

यह चर के वर्ग प्रकार प्राप्त करने के लिए [VARNAME वर्ग] का उपयोग किया जाता है: जाँच क्या वर्ग प्रकार वस्तु में व्याख्या की जा रही है के रूप में मैं इस NSLog के बाद।

तो मैं अगर यह सही या गलत है देखना चाहता हूँ .... तो मैं इस कोड लिखने ..:

if([[_events objectAtIndex:indexPath.row] objectForKey:@"attending"] == YES){ 

नहीं कर सकते लेकिन मैं इसे संकलन क्योंकि यह मुझे यह कह एक पीले रंग की पाठ त्रुटि देता है:

enter image description here

क्या मैं गलत कर रहा हूँ? मैं इसे कैसे ठीक करूं। बस फ़ीड में डेटा जोड़ने के लिए इस तरह दिखता है:

{ 
    attendees =   (
    ); 
    attending = 1; 
    date = "2012-09-24 09:11:00"; 
    id = 504; 
    lessonHTML = "somehtml."; 
    name = "Sup"; 
    youtubeId = "http://www.youtube.com/watch?v=j1vb4cND3G0"; 
}, 
    { 
    attendees =   (
    ); 
    attending = 1; 
    date = "2012-09-24 09:11:00"; 
    id = 503; 
    lessonHTML = "somehtml."; 
    name = "Sup"; 
    youtubeId = "http://www.youtube.com/watch?v=j1vb4cND3G0"; 
}, 
    { 
    attendees =   (
    ); 
    attending = 0; 
    date = "2012-09-24 09:11:00"; 
    id = 508; 
    lessonHTML = "somehtml."; 
    name = "Sup"; 
    youtubeId = "http://www.youtube.com/watch?v=j1vb4cND3G0"; 
}, 
    { 
    attendees =   (
    ); 
    attending = 1; 
    date = "2012-09-24 09:11:00"; 
    id = 509; 
    lessonHTML = "somehtml."; 
    name = "Sup"; 
    youtubeId = "http://www.youtube.com/watch?v=j1vb4cND3G0"; 
}, 
    { 
    attendees =   (
    ); 
    attending = 0; 
    date = "2012-09-24 09:11:00"; 
    id = 505; 
    lessonHTML = "somehtml."; 
    name = "Sup"; 
    youtubeId = "http://www.youtube.com/watch?v=j1vb4cND3G0"; 
}, 
    { 
    attendees =   (
    ); 
    attending = 1; 
    date = "2012-09-24 09:11:00"; 
    id = 506; 
    lessonHTML = "somehtml."; 
    name = "Sup"; 
    youtubeId = "http://www.youtube.com/watch?v=j1vb4cND3G0"; 
}, 

उत्तर

18

बूलियन NSNumber वस्तुओं (के लिए NSNumber दस्तावेज़ देखें में समाहित हैं:

if([[_events objectAtIndex:indexPath.row] objectForKey:@"attending"] == YES){ 

कुछ इस तरह है अधिक जानकारी)

उस मूल्य को निकालने के लिए जिसे आपको boolValue संदेश को ऑब्जेक्ट पर भेजने की आवश्यकता है शब्दकोश से trieved और हाँ/नहीं की तुलना: मूल्यों के बारे में अधिक

NSNumber* attendingObject = [[events objectAtIndex:indexPath.row] objectForKey:@"attending"]; 
if ([attendingObject boolValue] == YES) 
{ 
    ... 
} 

पढ़ें और वे कैसे समाहित हैं मैं संग्रह कक्षाएं in the Apple documentation here

+0

आप श्रीमान एक पौराणिक कथा कर रहे हैं! मेरा प्रश्न उत्तर दिया गया है और मेरी खोज पूरी हो गई है। आप 100 अनुभव प्राप्त करते हैं। – jimbob

+0

मदद करने में खुशी हुई ;-) – AliSoftware

+0

बहुत मदद, धन्यवाद। मुझे आश्चर्य है कि यह तेजी से 1, 2 या 3 में क्या हो गया ... – eddyce

2

एक "BOOL" प्रकार एक उद्देश्य सी वस्तु लेकिन इसके बजाय एक सी शैली प्रकार नहीं है।

यह एक शब्दकोश में "NSNumber" ऑब्जेक्ट के रूप में संग्रहीत है।

तो तुम बजाय क्या करने की जरूरत: शब्दकोश और अन्य कंटेनर क्लासों में

BOOL attending = NO; // assume NO to start with 
NSDictionary * lessonDictionary = [_events objectAtIndex: indexPath.row]; 
if(lessonDictionary) 
{ 
    NSNumber * attendingObject = [lessonDictionary objectForKey: @"attending"]; 
    if(attendingObject) 
    { 
      attending = [attendingObject boolValue]; 
    } 
} 
संबंधित मुद्दे