Sobes.tech
Junior — Middle

Pode explicar o conceito de Side Table e sua aplicação?

sobes.tech IA

Resposta da IA

Side Table é uma estrutura de dados auxiliar utilizada no iOS (Objective-C e Swift) para adicionar propriedades dinamicamente aos objetos sem alterar a sua classe original.

Ela é aplicada quando é necessário expandir a funcionalidade de uma classe existente, por exemplo, adicionar uma nova propriedade a um objeto, mas sem a possibilidade ou desejo de criar uma subclasse.

Na implementação do Side Table, geralmente é utilizado o mecanismo de objetos associados (associated objects), que permite vincular dados adicionais a um objeto em tempo de execução.

Exemplo de uso em 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

Dessa forma, o Side Table permite ampliar a flexibilidade dos objetos sem modificar seu código fonte.