Sobes.tech
Junior — Middle

Objective-C-də NSInteger məlumat tipi ilə NSNumber sinfi arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

NSInteger — bu primitiv məlumat növüdür (architektura asılı olaraq int və ya long üçün typedef), tam ədədi dəyərləri saxlamaq üçün istifadə olunur. O, obyekt deyil və yığım səviyyəsində işləyir.

NSNumber — obyekt olan bir sarmalayıcı sinifdir və ədədi dəyərləri (o cümlədən NSInteger, float, double və s.) obyekt kimi saxlamağa imkan verir. Bu, yalnız obyektlərlə işləyən kolleksiyalarda, məsələn, NSArray və ya NSDictionary daxilində ədədi saxlamaq lazım olduqda faydalıdır.

Nümunə:

NSInteger myInt = 42; // sadə tam ədəd tipi
NSNumber *myNumber = @(myInt); // ədədi obyekt sarmalayıcı

// NSNumber istifadə edərək massivdə
NSArray *array = @[myNumber];

// NSNumber-dən dəyər almaq
NSInteger value = [myNumber integerValue];

Beləliklə, NSInteger əsas ədədi tipdir, və NSNumber isə ədədi obyektə çevirmək üçün istifadə olunan obyektdir.