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-ը օբյեկտ է, որը պարունակում է թիվ՝ օգտագործելու համար օբյեկտային կոնտեքստում։