Swift 3.0 静态实例,迁移工具中语法的更改
Swift 3.0 静态实例,迁移工具中语法的更改
这个问题已经有了答案:
之前我会在类中创建一个共享的实例,像这样:
class MenuConfigurator { // MARK: Object lifecycle class var sharedInstance: MenuConfigurator { struct Static { static var instance: MenuConfigurator? static var token: dispatch_once_t = 0 } dispatch_once(&Static.token) { Static.instance = MenuConfigurator() } return Static.instance! } }
看来Swift 3.0迁移工具已经将代码块更改为:
class MenuConfigurator { private static var __once: () = { Static.instance = MenuConfigurator() }() // MARK: Object lifecycle class var sharedInstance: MenuConfigurator { struct Static { static var instance: MenuConfigurator? static var token: Int = 0 } _ = MenuConfigurator.__once return Static.instance! } }
我得到了错误使用未解决的标识符Static
。这里发生了什么?为什么创建了新的变量private static var __once
?
admin 更改状态以发布 2023年5月24日