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.