swift中的dispatch_once_t替代方案[重复]
Posted
技术标签:
【中文标题】swift中的dispatch_once_t替代方案[重复]【英文标题】:dispatch_once_t alternative in swift [duplicate] 【发布时间】:2017-12-04 15:13:27 【问题描述】:已经尝试过这些:
'dispatch_once_t' is unavailable in Swift: Use lazily initialized globals instead
Whither dispatch_once in Swift 3?
这是我的代码:
class var sharedInstance:Model
struct Static
static var instance:Model?
static var token: dispatch_once_t = 0
dispatch_once(&Static.token)
Static.instance = Model()
return Static.instance!
请给我建议dispatch_once_t的替代方法。我不知道swift,我编码C/C++/Obj.C,请给我swift代码来解决上述问题
【问题讨论】:
dispatch_once()
的替代品,或者说是制作单例的好方法(在 Objective-C 中通常称为 sharedInstance
)?那是一个不同的问题。对于单身人士:***.com/questions/24024549/… ?不建议完全模仿另一种语言而不使其适应您当前的语言。
@Larme,感谢您的建议。请给我快速版本的代码来修复上述错误...请回答
【参考方案1】:
在swift中单例可以写成,
class Model: NSObject
static let sharedInstance = Model()
然后使用Model.sharedInstance
。您不需要像在目标 c 中那样调度一次。
来源https://thatthinginswift.com/singletons/
【讨论】:
请更改我的代码,我更新的代码是什么? 现在检查。只需在该类中添加它而不是您的代码。 非常感谢。这个问题已解决,效果很好。以上是关于swift中的dispatch_once_t替代方案[重复]的主要内容,如果未能解决你的问题,请参考以下文章