Sobes.tech
Junior — Middle

Pode explicar o que se entende por valores associados na programação?

sobes.tech IA

Resposta da IA

Na programação, especialmente no desenvolvimento iOS com Objective-C ou Swift, valores associados (associative values) referem-se a um mecanismo que permite adicionar propriedades a objetos dinamicamente em tempo de execução, sem alterar a sua classe original.

Isto é realizado através de ligações associadas (associated objects) no runtime do Objective-C. Por exemplo, pode-se "anexar" um valor adicional a uma instância de uma classe, usando uma chave e um ponteiro para o valor. Isto é útil quando se deseja expandir a funcionalidade de classes existentes sem criar subclasses.

Exemplo em Objective-C:

#import <objc/runtime.h>

static char kAssociatedObjectKey;

@implementation UIView (PropriedadePersonalizada)

- (void)setCustomProperty:(NSString *)value {
    objc_setAssociatedObject(self, &kAssociatedObjectKey, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

- (NSString *)customProperty {
    return objc_getAssociatedObject(self, &kAssociatedObjectKey);
}

@end

Aqui, uma nova propriedade customProperty é adicionada dinamicamente ao objeto UIView sem modificar a classe UIView.