0
から構文の変化は、私が以前にそうのような共有インスタンスを作成します。スウィフト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!
}
}
スウィフト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!
}
}
エラーUse of unresolved identifier Static
が発生します。ここで何が起きてるの?新しいバージョンprivate static var __once
が作成されたのはなぜですか?
こんにちは、プロジェクトをすばやく3に変換するのは本当に悪夢です。以前のコードを入力してエラーがどのようなものかを確認しようとしましたか?これから変換ツールがこのように変わった理由を知ることができます。 swift 3でも使える 'static'もあります。私はそれを使用しています。小さな 's'だけで –