Sobes.tech
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.