W Objective-C masz rozróżnienie między właściwościami atomowymi i nieatomowymi:
@property (nonatomic, strong) NSObject *nonatomicObject;
@property (atomic, strong) NSObject *atomicObject;
Z mojego zrozumienia można bezpiecznie odczytywać i zapisywać właściwości zdefiniowane jako atomowe z wielu wątków, podczas gdy pisanie i uzyskiwanie dostępu do właściwości nieatomowych lub ivars z wielu wątków w tym samym czasie może skutkować niezdefiniowanym zachowaniem, w tym błędami złego dostępu.
Więc jeśli masz taką zmienną w Swift:
var object: NSObject
Czy mogę bezpiecznie odczytywać i zapisywać w tej zmiennej równolegle? (Bez rozważania rzeczywistego znaczenia robienia tego).
@atomic
lub@nonatomic
. lub domyślnie atomic. (Swift jest tak niekompletny, nie możemy teraz wiele powiedzieć)