néant est une valeur vide lié/correspondent à un objet(de type id de l'objectif c). néant ai pas de référence/adresse, juste une valeur vide.
NSString *str = nil;
donc, nul ne doit être utilisé, si nous avons affaire à un objet.
if(str==nil)
NSLog("str is empty");
Maintenant NULL est utilisé pour le non-pointeur d'objet(comme c pointeur) en Objective-c. Comme néant , NULL ai pas de valeur, pas d'adresse.
char *myChar = NULL;
struct MyStruct *dStruct = NULL;
Donc, si il ya une situation, quand j'ai besoin de vérifier mon struct (structure type de la variable est vide ou non alors, je vais l'utiliser,
if(dStruct==NULL)
NSLog("The struct is empty");
Permet d'avoir un autre exemple, l'
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
de clé-valeur en observant le contexte devrait être un C pointeur ou une référence d'objet. Voici pour le contexte, nous ne pouvons pas utiliser néant, nous devons utiliser la valeur NULL.
Enfin, le NSNull classe définit un objet singleton utilisé pour représenter les valeurs null dans les objets de collection(NSArray,NSDictionary). L' [NSNull null] retourne l'instance du singleton de NSNull. Fondamentalement, [NSNull null] est un objet approprié.
Il n'y a aucun moyen d'insérer un nul objet dans une collection de type objet.Permet d'avoir un exemple
NSMutableArray *check = [[NSMutableArray alloc] init];
[check addObject:[NSNull null]];
[check addObject:nil];
Sur la deuxième ligne, on ne sera pas faire d'erreur, parce qu'il est parfaitement juste à insérer NSNull objet dans une collection de type objet. Sur la troisième ligne, nous aurons "objet ne peut pas être nul" erreur. Parce que nul n'est pas un objet.