Sobes.tech
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 NSArray ili NSDictionary), jer one ne mogu sadržavati nil.

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.