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