Junior — Middle
Čím se liší datový typ NSInteger od třídy NSNumber v Objective-C?
sobes.tech AI
Odpověď od AI
NSInteger — je primitivní datový typ (typedef pro int nebo long v závislosti na architektuře), používaný pro ukládání celočíselných hodnot. Není to objekt a pracuje na úrovni zásobníku.
NSNumber — je třída obalovač (objekt), která umožňuje ukládání číselných hodnot (včetně NSInteger, float, double atd.) ve formě objektů. To je užitečné, když je třeba uložit číslo do kolekcí, které pracují pouze s objekty, například NSArray nebo NSDictionary.
Příklad:
NSInteger myInt = 42; // jednoduchý celočíselný typ
NSNumber *myNumber = @(myInt); // obalovací objekt pro číslo
// Použití NSNumber v poli
NSArray *array = @[myNumber];
// Získání hodnoty z NSNumber
NSInteger value = [myNumber integerValue];
Tedy, NSInteger je základní číselný typ, a NSNumber je objekt, který obaluje číslo pro použití v objektově orientovaném kontextu.