Junior — Middle
Pode garantir-se a segurança ao declarar variáveis de instância em Objective-C?
sobes.tech IA
Resposta da IA
Em Objective-C, a segurança ao declarar variáveis de instância não é garantida pelo próprio idioma. As variáveis de instância (instance variables) são simplesmente campos da classe, e a segurança de acesso a elas depende de como organiza o acesso e a sincronização.
Se estiver a trabalhar num ambiente multithread, para garantir a segurança no acesso às variáveis de instância, deve usar mecanismos de sincronização, como @synchronized, NSLock ou outros meios.
Exemplo de uso de @synchronized para proteger o acesso a uma variável:
@interface MyClass : NSObject {
NSInteger _counter;
}
- (void)incrementCounter;
- (NSInteger)getCounter;
@end
@implementation MyClass
- (void)incrementCounter {
@synchronized(self) {
_counter++;
}
}
- (NSInteger)getCounter {
@synchronized(self) {
return _counter;
}
}
@end
Assim, a segurança ao declarar variáveis de instância não é garantida automaticamente, sendo alcançada através de uma gestão adequada do acesso a elas.