Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Cocoa] Tester si un objet est un NSNull

2 réponses
Avatar
Frédéric Testuz
Bonjour,

Pour savoir si un objet appartien à la classse NSNull je fais :

if ([anObject isMemberOfClass:[NSNull class]])

Cependant dans le document de référence de NSNull, on apprend que la méthode
+[NSNull null] renvoi toujours la même instance, unique. Est-ce que je peux
alors tester mon objet comme ça :

if (anObject==[NSNull null])

Est-ce que cela fonctionne toujours ? Et est-ce utile ?

--
Frédéric Testuz

2 réponses

Avatar
DINH Viêt Hoà

Bonjour,

Pour savoir si un objet appartien à la classse NSNull je fais :

if ([anObject isMemberOfClass:[NSNull class]])

Cependant dans le document de référence de NSNull, on apprend que la méthode
+[NSNull null] renvoi toujours la même instance, unique. Est-ce que je peux
alors tester mon objet comme ça :

if (anObject==[NSNull null])

Est-ce que cela fonctionne toujours ? Et est-ce utile ?


c'est effectivement plus performant que - [NSObject isMemberOfClass:]
vu que - [NSObject isMemberOfClass:] fait une chose qui n'est pas
forcément simple et que : == est juste une comparaison de pointeurs.
Tu peux sans doute être plus optimal encore en initialisant quelque part
une variable qui contient [NSNull null] une fois pour toute puis en
comparant ton objet à cette variable.

--
DINH V. Hoa,

"Je me demande comment ça se fait qu'un tel génie n'ait pas déjà été
repéré par les grosses boites d'info de la planète." -- FiLH

Avatar
Frédéric Testuz
"DINH Viêt Hoà" a écrit dans le message de
news:

Bonjour,

Pour savoir si un objet appartien à la classse NSNull je fais :

if ([anObject isMemberOfClass:[NSNull class]])

Cependant dans le document de référence de NSNull, on apprend que la
méthode


+[NSNull null] renvoi toujours la même instance, unique. Est-ce que je
peux


alors tester mon objet comme ça :

if (anObject==[NSNull null])

Est-ce que cela fonctionne toujours ? Et est-ce utile ?


c'est effectivement plus performant que - [NSObject isMemberOfClass:]
vu que - [NSObject isMemberOfClass:] fait une chose qui n'est pas
forcément simple et que : == est juste une comparaison de pointeurs.
Tu peux sans doute être plus optimal encore en initialisant quelque part
une variable qui contient [NSNull null] une fois pour toute puis en
comparant ton objet à cette variable.


Oui, je voyais bien les choses ainsi. Ma seule crainte était que dans
certaines circonstances ont pouvait avoir une autre instance (un objet
renvoyé par une librairie ?).

--
Frédéric Testuz