Sobes.tech
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.