Sobes.tech
Junior — Middle

Можете ли објаснити концепт Side Table и његову примену?

sobes.tech АИ

Одговор од АИ

Side Table je pomoćna struktura podataka koja se koristi u iOS (Objective-C i Swift) za dinamičko dodavanje svojstava objektima bez promene njihove originalne klase.

Primjenjuje se kada je potrebno proširiti funkcionalnost postojeće klase, na primer, dodavanjem novog svojstva objektu, ali nema mogućnosti ili želje da se kreira podklasa.

U implementaciji Side Table, obično se koristi mehanizam povezanih objekata (associated objects), koji omogućava povezivanje dodatnih podataka sa objektom tokom izvršavanja.

Primer upotrebe u 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

Na ovaj način, Side Table omogućava fleksibilno proširenje objekata bez promene njihovog izvornog koda.