假设尚无底层文档,这还为时尚早,但是您可以从汇编中学习。料斗拆卸器是一个很棒的工具。
@interface ObjectiveCar : NSObject
@property (nonatomic, strong) id engine;
@property (atomic, strong) id driver;
@end
在非原子和原子上分别使用objc_storeStrong
和objc_setProperty_atomic
,其中
class SwiftCar {
var engine : AnyObject?
init() {
}
}
使用swift_retain
,libswift_stdlib_core
并且显然没有内置线程安全性。
我们可以推测,@lazy
稍后可能会引入其他关键字(类似于)。
:根据有关单例快速环境的此 ,可以使某些情况下线程对您安全,即:
class Car {
static let sharedCar: Car = Car() // will be called inside of dispatch_once
}
private let sharedCar: Car2 = Car2() // same here
class Car2 {
}
:关注快速发展的建议https://github.com/apple/swift- evolution/blob/master/proposals/0030-property-behavior- decls.md-看起来像是@atomic
自己实现行为成为可能。