Junior — Middle
Objective-C'de NSInteger veri tipi ile NSNumber sınıfı arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
NSInteger — bu primitiv ma'lumot turi (arkitekturaga qarab int yoki long uchun typedef), butun sonlarni saqlash uchun ishlatiladi. Bu ob'ekt emas va stack darajasida ishlaydi.
NSNumber — bu ob'ekt bo'lib, raqamli qiymatlarni (shu jumladan NSInteger, float, double va boshqalar) ob'ekt shaklida saqlash imkonini beradi. Bu, masalan, NSArray yoki NSDictionary kabi ob'ektlar bilan ishlaydigan kolleksiyalarda raqamni saqlash uchun foydalidir.
Misol:
NSInteger myInt = 42; // oddiy butun son turi
NSNumber *myNumber = @(myInt); // raqam uchun ob'ekt-qarshi
// NSNumber ni massivda ishlatish
NSArray *array = @[myNumber];
// NSNumber dan qiymat olish
NSInteger value = [myNumber integerValue];
Shunday qilib, NSInteger asosiy raqamli tur, NSNumber esa raqamni ob'ektga aylantiradigan ob'ekt bo'lib, ob'ektga yo'naltirilgan kontekstda foydalaniladi.