2009-09-03 6 views
2

les impressions de la console me (null) pour une variable qui ne devrait pas être, donc je veux mettre un assert là juste pour le plaisir:Comment faire pour vérifier dans un NSAssert d'une variable est (null)?

NSAssert(myVar, @"myVar was (null)!"); 

ce qui est l'affaire ici? cette chose (nulle) ne semble pas être "nul", non? Comment puis-je vérifier pour cela? Je veux supposer que la var est définie correctement et non nulle, pas nulle.

Répondre

4

En supposant myVar est de type id (ou tout autre type d'objet), utilisez

NSAssert(myVar != nil, @"") 

Si l'affirmation passe, vous devriez être en mesure d'imprimer myVar à la console avec

NSLog(@"myVar = %@", myVar); 

Comme un côté non e, nil==null, (les deux sont #defined en tant que __DARWIN_NULL qui est #defined((void *)0)). Si vous essayez d'utiliser NSLog d'imprimer la -description d'un nil (ou NULL) Référence de l'objet que vous obtenez « (null) »

-1

faire [maVar isEqualToClass: [NSNull null]] cela retourne oui si elle est NSNull, si son zéro, vous pouvez faire si (maVar == nil)

+0

Pour être clair: NSNull n'est pas la même chose que nul ou nul. – mahboudz

+0

ce n'est pas, donc j'ai donné deux façons de comparer si – Daniel

-1

que je fais habituellement

if (object != nil) 
    doSomething(object); 
else 
    NSLog("bad object!"); 
Questions connexes