Junior — Middle
Dasturlashda assotsiativ qiymatlar nima ekanligini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Dasturlashda, ayniqsa iOS dasturlashda Objective-C yoki Swiftda, assotsiativ qiymatlar (associative values) - bu obyektlarga dinamik ravishda xususiyatlar qo'shish mexanizmi bo'lib, bu ularning asl sinfini o'zgartirmasdan amalga oshiriladi.
Bu Objective-C ish vaqtida assotsiativ obyektlar (associated objects) yordamida amalga oshiriladi. Masalan, siz sinf nusxasiga qo'shimcha qiymatni kalit va qiymat ko'rsatkichidan foydalanib "biriktirishingiz" mumkin. Bu mavjud sinflarning funksionalligini kengaytirish uchun foydalidir, pastki sinflar yaratmasdan.
Objective-C misoli:
#import <objc/runtime.h>
static char kAssociatedObjectKey;
@implementation UIView (MaxsusXususiyat)
- (void)setCustomProperty:(NSString *)value {
objc_setAssociatedObject(self, &kAssociatedObjectKey, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (NSString *)customProperty {
return objc_getAssociatedObject(self, &kAssociatedObjectKey);
}
@end
Bu yerda, UIView obyekti uchun dinamik ravishda yangi xususiyat customProperty qo'shiladi, UIView sinfini o'zgartirmasdan.