Junior — Middle
Môžete vysvetliť koncept Side Table a jeho použitie?
sobes.tech AI
Odpoveď od AI
Side Table je pomocná dátová štruktúra používaná v iOS (Objective-C a Swift) na dynamické pridávanie vlastností k objektom bez zmeny ich pôvodnej triedy.
Používa sa, keď je potrebné rozšíriť funkčnosť existujúcej triedy, napríklad pridaním novej vlastnosti k objektu, ale nie je možné alebo žiadané vytvoriť podtriedu.
V implementácii Side Table sa zvyčajne používa mechanizmus asociovaných objektov (associated objects), ktorý umožňuje spojiť dodatočné údaje s objektom počas behu.
Príklad použitia v Objective-C:
#import <objc/runtime.h>
static char kAssociatedObjectKey;
@implementation NSObject (SideTable)
- (void)setCustomProperty:(NSString *)value {
objc_setAssociatedObject(self, &kAssociatedObjectKey, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (NSString *)customProperty {
return objc_getAssociatedObject(self, &kAssociatedObjectKey);
}
@end
Týmto spôsobom Side Table umožňuje flexibilne rozširovať objekty bez zmeny ich zdrojového kódu.