Swift 单例中的线程安全问题
单例是常见的一种设计模式。最近在编写单例代码的时候,发现公司很多同事的 Swift 单例写法都是这样的, extension NSObject { @discardableResult static func kep_synchronized<T>(_ lock: AnyObject, closure: () -> T) -> T { objc_sync_enter(lock) defer { objc_sync_exit(lock) } return closure() } } class DefaultDict: NSObject { private static var manager: DefaultDict? static var sharedManager: DefaultDict { get { var newShared