मैं कैसे जांचूं कि NSNumber ऑब्जेक्ट शून्य या खाली है या नहीं?जांचें कि क्या NSNumber खाली है
NSNumber *myNumber;
if (myNumber == nil)
doSomething
लेकिन अगर वस्तु बना दिया गया है, लेकिन वहाँ क्योंकि एक काम में विफल रहा है उस में कोई मूल्य नहीं है, मैं यह कैसे जांच कर सकते हैं:
ठीक नहीं के बराबर आसान है? इस तरह कुछ इस्तेमाल करें?
if ([myNumber intValue]==0)
doSomething
वहाँ NSString उपलब्ध के लिए की तरह शून्य पर वस्तुओं के परीक्षण के लिए एक सामान्य विधि है (इस post देखें)?
उदाहरण 1
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"" forKey:@"emptyValue"];
NSNumber *emptyNumber = [dict objectForKey:@"emptyValue"];
कौन सा मूल्य emptyNumber
में क्या है? मैं कैसे देख सकता हूं कि emptyNumber
खाली है या नहीं?
उदाहरण 2
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"" forKey:@"emptyValue"];
NSString *myString = [dict objectForKey:@"emptyValue"];
if (myString == nil || [myString length] == 0)
// got an empty value
NSNumber *emptyNumber=nil;
अगर मैं के बाद emptyNumber
नहीं के बराबर करने के लिए स्थापित किया गया था इस का उपयोग क्या होता है?
[emptyNumber intValue]
क्या मुझे शून्य मिलता है?
उदाहरण 3
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"" forKey:@"emptyValue"];
NSNumber *myEmptyValue = [dict objectForKey:@"emptyValue"];
if (myEmptyValue == nil)
// NSLog is never called
NSLog(@"It is empty!");
इस तरह NSLog कभी नहीं कहा जाता है की तरह। myEmptyValue
nil
नहीं है और NSNull
नहीं है। तो इसमें एक मनमाना संख्या है?
@ [0.7] एक दे देंगे NSNumber जो निश्चित रूप से शून्य नहीं है, लेकिन intValue 0 वापस आ जाएगा। तो यह एक खराब परीक्षण है। – gnasher729
महान विवरण के लिए उपरोक्त जो कुछ समझने में मदद करता है जो मैं डिफ़ॉल्ट से निपट रहा हूं। NSNumber * savedPin = [[NSUserDefaults standardUserDefaults] valueForKey: @ "someKey"]; एक ऑब्जेक्ट देता है जिसमें वर्ग __NSCFConstantString है और इस प्रकार शून्य की तुलना विफल रही है। धन्यवाद! –