Em Objective-C, você tem uma distinção entre propriedades atômicas e não atômicas:
@property (nonatomic, strong) NSObject *nonatomicObject;
@property (atomic, strong) NSObject *atomicObject;
Do meu entendimento, você pode ler e escrever propriedades definidas como atômicas de vários segmentos com segurança, enquanto escrever e acessar propriedades não atômicas ou ivars de vários segmentos ao mesmo tempo pode resultar em comportamento indefinido, incluindo erros de acesso incorreto.
Portanto, se você tiver uma variável como esta no Swift:
var object: NSObject
Posso ler e escrever nesta variável em paralelo com segurança? (Sem considerar o significado real de fazer isso).
atomicgeralmente não é considerado suficiente para interação thread-safe com uma propriedade, exceto para tipos de dados simples. Para objetos, geralmente sincroniza-se o acesso através de threads usando bloqueios (por exemplo, NSLockou @synchronized) ou filas GCD (por exemplo, fila serial ou fila simultânea com padrão "leitor-gravador").
atomicnão garante segurança de thread para objetos; e (b) se alguém usar corretamente uma das técnicas de sincronização acima mencionadas para garantir a segurança do thread (entre outras coisas, evitando leitura / gravação simultânea), a questão atômica é discutível. Mas ainda precisamos / queremos isso para tipos de dados simples, onde atomictem valor real. Boa pergunta!

@atomicou@nonatomic. ou apenas atômico por padrão. (Swift está tão incompleto, não podemos dizer muito agora)