Junior — Middle
Koja je razlika između Nil i Null u kontekstu programiranja?
sobes.tech АИ
Одговор од АИ
U kontekstu programiranja, posebno u iOS i Objective-C, Nil i Null imaju različita značenja:
-
Nil: je pokazivač na objekat koji je jednak nuli (null pointer) za Objective-C objekte. Koristi se za označavanje odsustva objekta (npr.,
NSObject *obj = Nil;). -
NULL: je makro koji označava null pokazivač za obične pokazivače na C strukture ili primitivne tipove (npr.,
int *ptr = NULL;). -
NSNull: je poseban objekat u Foundation-u koji se koristi za predstavljanje null vrednosti u kolekcijama (npr., u
NSArrayiliNSDictionary), jer one ne mogu sadržavatinil.
Primer:
NSObject *obj = Nil; // ne postoji objekat
int *ptr = NULL; // ne postoji adresa
NSArray *array = @[[NSNull null]]; // objekat koji označava null unutar niza
Dakle, Nil je null pokazivač za Objective-C objekte, NULL za obične pokazivače, a NSNull je objekat-zamena za predstavljanje null u kolekcijama.