Junior — Middle
Objective-Cте NSInteger маалымат түрү менен NSNumber классы арасындагы айырма эмнеде?
sobes.tech AI
AIден жооп
NSInteger — бул негизги маалымат түрү (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 — санды каптогон обьект, ал объектке багытталган контекстте колдонулат.