Sobes.tech
Junior — Middle

Wat is het verschil tussen het gegevenstype NSInteger en de klasse NSNumber in Objective-C?

sobes.tech AI

Antwoord van AI

NSInteger — het primitieve gegevenstype (typedef voor int of long afhankelijk van de architectuur), gebruikt voor het opslaan van gehele getallen. Het is geen object en werkt op stackniveau.

NSNumber — is een wrapper-klasse (object) die het mogelijk maakt om numerieke waarden (inclusief NSInteger, float, double, enz.) op te slaan als objecten. Dit is handig wanneer je een getal wilt opslaan in collecties die alleen met objecten werken, zoals NSArray of NSDictionary.

Voorbeeld:

NSInteger myInt = 42; // eenvoudige gehele getal type
NSNumber *myNumber = @(myInt); // object-wrapper voor het getal

// Gebruik van NSNumber in een array
NSArray *array = @[myNumber];

// Waarde ophalen uit NSNumber
NSInteger value = [myNumber integerValue];

Dus, NSInteger is een basistype voor numerieke waarden, en NSNumber is een object dat een getal encapsuleert voor gebruik in een objectgeoriënteerde context.