मुझे लगता है, ज्यादातर कक्षाओं में, अगर [सुपर इनिट] से रिटर्न वैल्यू शून्य है और आप इसे जांचते हैं, जैसा कि मानक प्रथाओं द्वारा अनुशंसित है, और फिर समय से पहले वापस आ जाता है अगर शून्य, मूल रूप से आपका ऐप अभी भी सही ढंग से काम नहीं कर रहा है। आप, इसके बारे में सोचते भी है कि हालांकि, अगर (आत्म! = शून्य) चेक नहीं है, अपने वर्ग के समुचित संचालन के लिए, समय आप वास्तव में की 99.99% कर स्वयं की जरूरत गैर शून्य होने के लिए। अब, मान लीजिए कि किसी भी कारण से, [सुपर इनिट] ने शून्य कर दिया, मूल रूप से नील के खिलाफ आपका चेक मूल रूप से आपकी कक्षा के कॉलर को रुपये दे रहा है, जहां यह संभावना वैसे भी विफल हो जाएगी, क्योंकि यह स्वाभाविक रूप से यह मान लेगा कि कॉल था सफल।
असल में, मुझे जो मिल रहा है, वह 99.99% समय है, अगर (स्व! = नील) आपको अधिक मजबूती के संदर्भ में कुछ भी नहीं खरीदता है, क्योंकि आप सिर्फ अपने चालान के लिए रुपये दे रहे हैं। वास्तव में इसे मजबूती से संभालने में सक्षम होने के लिए, आपको वास्तव में अपने पूरे कॉलिंग पदानुक्रम में चेक लगाने की आवश्यकता होगी। और फिर भी, केवल एक चीज जो आपको खरीदेगी वह यह है कि आपका ऐप थोड़ा और अधिक साफ / मजबूत रूप से विफल हो जाएगा। लेकिन यह अभी भी विफल होगा।
यदि एक पुस्तकालय वर्ग ने मनमाने ढंग से एक [सुपर init] के परिणामस्वरूप शून्य लौटने का फैसला किया है, तो आप बहुत अधिक च *** एड वैसे भी हैं, और यह एक संकेत है कि पुस्तकालय वर्ग के लेखक ने कार्यान्वयन की गलती की है।
मुझे लगता है कि यह एक विरासत कोडिंग सुझाव से अधिक है, जब एप्लिकेशन बहुत अधिक सीमित मेमोरी में चले गए।
लेकिन सी लेवल कोड के लिए, मैं अभी भी NULL पॉइंटर के खिलाफ मॉलॉक () के रिटर्न वैल्यू की जांच करूंगा। जबकि, ऑब्जेक्टिव-सी के लिए, जब तक मुझे इसके विपरीत साक्ष्य नहीं मिल जाते, मुझे लगता है कि मैं आम तौर पर if (स्व! = Nil) चेक को छोड़ देता हूँ। विसंगति क्यों?
क्योंकि, कुछ मामलों में, सी और मॉलॉक स्तरों पर, आप वास्तव में आंशिक रूप से ठीक हो सकते हैं। जबकि मैं 99.99% मामलों में ऑब्जेक्टिव-सी के बारे में सोचता हूं, अगर [सुपर इनिट] शून्य करता है, तो आप मूल रूप से एफ एड हैं, भले ही आप इसे संभालने की कोशिश करें। आप एप्लिकेशन को क्रैश होने और उसके बाद के साथ सौदा करने के लिए भी कह सकते हैं।