Junior — Middle
Was ist der Unterschied zwischen dem Datentyp NSInteger und der Klasse NSNumber in Objective-C?
sobes.tech KI
Antwort von AI
NSInteger — ist ein primitiver Datentyp (typedef für int oder long je nach Architektur), der zum Speichern von Ganzzahlen verwendet wird. Es ist kein Objekt und arbeitet auf Stack-Ebene.
NSNumber — ist eine Wrapper-Klasse (Objekt), die es ermöglicht, numerische Werte (einschließlich NSInteger, float, double usw.) als Objekte zu speichern. Dies ist nützlich, wenn man eine Zahl in Sammlungen speichern möchte, die nur mit Objekten arbeiten, z.B. NSArray oder NSDictionary.
Beispiel:
NSInteger myInt = 42; // einfacher Ganzzahltyp
NSNumber *myNumber = @(myInt); // Objekt-Wrapper für die Zahl
// Verwendung von NSNumber in einem Array
NSArray *array = @[myNumber];
// Wert aus NSNumber auslesen
NSInteger value = [myNumber integerValue];
Daher ist NSInteger ein grundlegender numerischer Typ, und NSNumber ist ein Objekt, das eine Zahl kapselt, um es in einem objektorientierten Kontext zu verwenden.