Junior — Middle
Môžete vysvetliť, čo sa rozumie pod pojmom asociatívne hodnoty v programovaní?
sobes.tech AI
Odpoveď od AI
V programovaní, najmä pri vývoji iOS s Objective-C alebo Swift, sa asociované hodnoty (associative values) vzťahujú na mechanizmus, ktorý umožňuje dynamicky pridávať vlastnosti k objektom počas behu, bez zmeny ich pôvodnej triedy.
Toto sa realizuje pomocou asociovaných objektov (associated objects) v prostredí runtime Objective-C. Napríklad, môžete "pripojiť" dodatočnú hodnotu k inštancii triedy pomocou kľúča a ukazovateľa na hodnotu. Toto je užitočné, keď chcete rozšíriť funkcionalitu existujúcich tried bez vytvárania podtried.
Príklad v Objective-C:
#import <objc/runtime.h>
static char kAssociatedObjectKey;
@implementation UIView (VlastnostNaZakázku)
- (void)setCustomProperty:(NSString *)value {
objc_setAssociatedObject(self, &kAssociatedObjectKey, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (NSString *)customProperty {
return objc_getAssociatedObject(self, &kAssociatedObjectKey);
}
@end
Tu sa k objektu UIView dynamicky pridáva nová vlastnosť customProperty bez zmeny triedy UIView.