Sobes.tech
Junior — Middle

Puteți explica conceptul de Side Table și aplicarea sa?

sobes.tech AI

Răspuns de la AI

Side Table este o structură de date auxiliară utilizată în iOS (Objective-C și Swift) pentru a adăuga proprietăți dinamice obiectelor fără a modifica clasa lor originală.

Se aplică atunci când este necesar să extindeți funcționalitatea unei clase existente, de exemplu, să adăugați o nouă proprietate unui obiect, dar fără posibilitatea sau dorința de a crea o subclasă.

În implementarea Side Table, de obicei se folosește mecanismul de obiecte asociate (associated objects), care permite legarea de date suplimentare de un obiect în timpul execuției.

Exemplu de utilizare în 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

Astfel, Side Table permite extinderea flexibilă a obiectelor fără a modifica codul lor sursă.