दो स्थितियां हैं:
यह संभव है कि एक वस्तु है [NSNull null]
, या यह असंभव है।
आपका एप्लिकेशन आमतौर पर [NSNull null];
आपको केवल उसी का उपयोग नहीं करना चाहिए यदि आप किसी " नल " ऑब्जेक्ट को किसी सरणी में रखना चाहते हैं , या इसका उपयोग शब्दकोश मान के रूप में करना चाहते हैं। और फिर आपको पता होना चाहिए कि कौन से सरणियों या शब्दकोशों में शून्य मान हो सकते हैं, और जो नहीं हो सकते हैं।
अगर आपको लगता है कि किसी सरणी में कभी [NSNull null]
मान नहीं होते हैं, तो इसके लिए जाँच न करें। यदि कोई है [NSNull null]
, तो आपको एक अपवाद मिल सकता है लेकिन यह ठीक है: उद्देश्य-सी अपवाद प्रोग्रामिंग त्रुटियों को दर्शाते हैं। और आपके पास एक प्रोग्रामिंग त्रुटि है जिसे कुछ कोड बदलकर फिक्सिंग की आवश्यकता है।
यदि कोई वस्तु हो सकती है [NSNull null]
, तो आप इसके लिए बस परीक्षण करके देखें
(object == [NSNull null])
। isEqual
ऑब्जेक्ट के वर्ग को कॉल करना या जांचना बकवास है। केवल एक [NSNull null]
वस्तु है, और इसके लिए सादे पुराने सी ऑपरेटर की जाँच सबसे सीधी और सबसे कुशल तरीके से ठीक है।
यदि आप एक ऐसी NSString
वस्तु की जाँच करते हैं जो हो नहीं सकती [NSNull null]
(क्योंकि आप जानते हैं कि यह नहीं हो सकती है [NSNull null]
या क्योंकि आपने अभी जाँच की है कि यह अलग है [NSNull null]
, तो आपको अपने आप से यह पूछने की ज़रूरत है कि आप एक रिक्त स्ट्रिंग का इलाज कैसे करना चाहते हैं, यह लंबाई 0. है। यदि आप इसका उपचार एक null
स्ट्रिंग की तरह है nil
, फिर परीक्षण करें (object.length == 0)
। ऑब्जेक्ट.लिफ्ट 0 वापस आ जाएगा यदि object == nil
, तो यह परीक्षण शून्य वस्तुओं और लंबाई के साथ तार को कवर करता है। 0. यदि आप एक स्ट्रिंग स्ट्रिंग से अलग 0 लंबाई का एक तार का इलाज करते हैं, तो बस जांचें कि क्या object == nil
।
अंत में, यदि आप एक स्ट्रिंग को एक सरणी या डिक्शनरी में जोड़ना चाहते हैं, और स्ट्रिंग शून्य हो सकती है, तो आपके पास इसे जोड़ने, इसे @""
बदलने या इसके साथ प्रतिस्थापित करने का विकल्प नहीं है [NSNull null]
। इसे बदलने का @""
मतलब है कि आप "बिना स्ट्रिंग" और "लंबाई के स्ट्रिंग 0" के बीच अंतर करने की क्षमता खो देते हैं। इसे बदलने का [NSNull null]
मतलब है कि आपको उस कोड को लिखना होगा जब आप उस सरणी या शब्दकोश तक पहुंचते हैं जो [NSNull null]
वस्तुओं की जांच करता है।