Junior — Middle
Koja je razlika između tipa podataka NSInteger i klase NSNumber u Objective-C?
sobes.tech АИ
Одговор од АИ
NSInteger — to primitivni tip podataka (typedef za int ili long u zavisnosti od arhitekture), koji se koristi za skladištenje celobrojnih vrednosti. Nije objekat i radi na nivou steka.
NSNumber — je klasa-omotac (objekat) koja omogućava skladištenje numeričkih vrednosti (uključujući NSInteger, float, double i dr.) u obliku objekata. Ovo je korisno kada je potrebno sačuvati broj u kolekcijama koje rade samo sa objektima, poput NSArray ili NSDictionary.
Primer:
NSInteger myInt = 42; // jednostavan celobrojni tip
NSNumber *myNumber = @(myInt); // objekat-omotac za broj
// Korišćenje NSNumber u nizu
NSArray *array = @[myNumber];
// Dobijanje vrednosti iz NSNumber
NSInteger value = [myNumber integerValue];
Dakle, NSInteger je osnovni numerički tip, a NSNumber je objekat koji inkapsulira broj za korišćenje u objektno-orijentisanom kontekstu.