Sobes.tech
Junior — Middle

Ի՞նչ տարբերություն կա Objective-C-ում տվյալների տիպի NSInteger և NSNumber դասի միջև։

sobes.tech AI

Պատասխան AI-ից

NSInteger — դա primitív տվյալների տիպ է (typedef int կամ long՝ կախված ճարտարապետությունից), որը օգտագործվում է ամբողջ թվային արժեքների պահպանում համար։ Դա օբյեկտ չէ և աշխատում է ստեկի մակարդակում։

NSNumber — դա օբյեկտային օղակ (օբյեկտ), որը թույլ է տալիս պահել թվային արժեքներ (ներառյալ NSInteger, float, double և այլն) որպես օբյեկտներ։ Սա օգտակար է, երբ անհրաժեշտ է պահել թիվը օբյեկտային կոնտեքստում, օրինակ՝ NSArray կամ NSDictionary։

Օրինակ՝

NSInteger myInt = 42; // պարզ ամբողջ թվային տիպ
NSNumber *myNumber = @(myInt); // օբյեկտային օղակ համար

// Օգտագործում NSNumber-ի զանգվածում
NSArray *array = @[myNumber];

// Արժեք ստանալ NSNumber-ից
NSInteger value = [myNumber integerValue];

Այսպիսով՝ NSInteger-ը հիմնական թվային տիպ է, իսկ NSNumber-ը օբյեկտ է, որը պարունակում է թիվ՝ օգտագործելու համար օբյեկտային կոնտեքստում։