2012-06-06 17 views
5

पर लौटने वाला int मैं उद्देश्य-सी के लिए नया हूं और मुझे आश्चर्य है कि यह विधि क्यों संकलित करती है, क्या कोई मुझे बता सकता है क्यों?उद्देश्य-सी: बूल विधि

धन्यवाद

-(BOOL) isEnabled{ 
    return 56; 
} 
+2

एक अंतर्निहित कलाकार है - अंतिम पंक्ति प्रभावी ढंग से है: 'वापसी (बूल) 56;'। –

+0

मुझे पता था कि आप उससे पूछेंगे। – dan

उत्तर

6

ऑब्जेक्टिव-सी में एक BOOL नहीं है signed char है। चूंकि उस प्रकार फिट बैठता है, इसलिए शाब्दिक int से अंतर्निहित रूपांतरण में कोई डेटा हानि नहीं होती है।

+3

ज़िलान, यह भी ध्यान दें कि यदि यह 'YES' या' NO' मान पर निर्भर करता है तो यह कोड तोड़ सकता है। जैसे 'अगर ([self isEnabled] == हाँ]' if ([self isEnabled]) 'विफल होगा,' – Joe

+0

हाँ, यही कारण है कि सामान्य कोडिंग शैली उन स्थिरांक के मुकाबले तुलना करने से बचाती है, और केवल उन्हें असाइनमेंट के लिए उपयोग करती है। –

+3

आपको वास्तव में यह आलेख देखना चाहिए: http://weblog.bignerdranch.com/564-bools-sharp-corners/ –

0

आप के रूप

false === 0 === nil //Anything that is zero or nil is false 
true = !false   //Anything that is NOT zero or nil is true. 

56 उद्देश्य-सी में एक BOOL के बारे में सोच सकते हैं इसलिए सच रिटर्न क्योंकि यह शून्य

+1

नहीं, यह नहीं है। उद्देश्य-सी में एक बूल एक 'हस्ताक्षरित चार' है। –

+0

मेरी "परिभाषा" थोड़ा भ्रामक था, मैंने संशोधित किया है। –

+0

आपका संपादन अभी भी गलत है। –

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