在 Objective-C 中,原子属性和非原子属性是有区别的:
@property (nonatomic, strong) NSObject *nonatomicObject;
@property (atomic, strong) NSObject *atomicObject;
根据我的理解,您可以安全地从多个线程读写定义为原子的属性,而同时从多个线程编写和访问非原子属性或 ivar 可能导致未定义行为,包括糟糕的访问错误。
所以如果你在 Swift 中有一个这样的变量:
var object: NSObject
我可以安全地并行读写这个变量吗? (不考虑这样做的实际意义)。