वे काफी अलग हैं।
पहले शब्दकोश से ऑब्जेक्ट पॉइंटर प्राप्त होता है, फिर पॉइंटर को BOOL
के रूप में व्याख्या करता है। इसका मतलब यह है कि किसी भी गैर nil
सूचक YES
के रूप में व्याख्या की जाएगी, और nil
NO
के रूप में। ठोस उदाहरण में, जैसे शब्दकोशों में nil
पॉइंटर्स नहीं हो सकते हैं, आपको कोड की इस पंक्ति से केवल YES
मिल जाएगा।
दूसरा एक ही वस्तु को शब्दकोश से लेता है, फिर उस ऑब्जेक्ट पर boolValue
संदेश भेजता है। संभवतः, और यदि वस्तु संदेश को पहचानती है, तो इसके परिणामस्वरूप ऑब्जेक्ट का BOOL
संस्करण होगा।
एक ठोस उदाहरण के रूप में, शब्दकोश एक NSNumber
कुंजी @"boolValue"
के साथ जुड़े शामिल है, NSNumber
संदेश boolValue
प्राप्त होगा, और अगर यह गैर शून्य वापसी YES
, अन्यथा NO
है।
तो अपने प्रश्न का उत्तर देने के लिए, आपको दूसरे फॉर्म का उपयोग करना चाहिए। BOOL
पर पॉइंटर कास्टिंग शायद ही कभी कोई समझ में आता है।