Junior — Middle
Můžete vysvětlit koncept Side Table a jeho použití?
sobes.tech AI
Odpověď od AI
Side Table je pomocná datová struktura používaná v iOS (Objective-C a Swift) k dynamickému přidávání vlastností k objektům bez změny jejich původní třídy.
Používá se, když je potřeba rozšířit funkčnost stávající třídy, například přidat novou vlastnost k objektu, aniž by bylo možné nebo žádoucí vytvořit podtřídu.
V implementaci Side Table se obvykle používá mechanismus asociovaných objektů (associated objects), který umožňuje spojit dodatečná data s objektem během běhu programu.
Příklad použití 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 způsobem Side Table umožňuje flexibilně rozšiřovat objekty bez změny jejich zdrojového kódu.