check wenn NSNumber leer ist

Wie überprüfe ich, ob ein NSNumber-Objekt leer oder leer ist?

OK Null ist einfach:

NSNumber *myNumber;
if (myNumber == nil)
    doSomething

Aber wenn das Objekt erstellt wurde, es aber keinen Wert enthält, weil eine Zuweisung fehlgeschlagen ist, wie kann ich dies überprüfen? Verwenden Sie so etwas?

if ([myNumber intValue]==0)
   doSomething

ibt es eine allgemeine Methode zum Testen von Objekten auf Leere wie für NSString (siehe diesePos)?

Beispiel

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"" forKey:@"emptyValue"];
NSNumber *emptyNumber = [dict objectForKey:@"emptyValue"];

Welcher Wert hatemptyNumber enthalten? Wie kann ich prüfen, obemptyNumber ist leer

Beispiel 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;

Was passiert, wenn ich das nach @ benutemptyNumber wurde auf nil gesetzt?

[emptyNumber intValue]

Bekomme ich null?

Beispiel 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!");

Auf diese Weise wird NSLog niemals aufgerufen.myEmptyValue ist nichtnil und nichtNSNull. Es enthält also eine beliebige Zahl?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage