1. ホーム
  2. xcode

[解決済み] クラス変数が未サポート

2023-02-22 02:31:18

質問

初期ビューコントローラーとして分割ビューコントローラーを使用し、ストーリーボードから自動的にプロジェクトを開始します。

一般的に、このようなUIを持つアプリは 一つしかない をルートとする分割ビューコントローラがあります。 静的変数 を作成し、初期化時に設定しました。

そこで、この挙動をswiftで試してみたいのです。

iBookのSwiftプログラミング言語ガイドブックで、Typeプロパティ(staticとclassキーワード付き)について読み、その仕事をするコードの一部を試してみました。

import UIKit

class SplitViewController: UISplitViewController {

    class func sharedInstance() -> SplitViewController {
        return SplitViewController.instance
    }

    class let instance: SplitViewController = nil

    init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
        self.initialization()
    }

    init(coder aDecoder: NSCoder!) {
        super.init(coder: aDecoder);
        self.initialization()
    }

    func initialization() {
        SplitViewController.instance = self;
    }
}

が、Xcodeが型プロパティのclassキーワードはまだサポートされていないと言ったときに、私は理解しました。

これを行うための解決策はあったのでしょうか?

どのように解決したのですか?

Swift は現在、クラス内の静的変数をサポートしています。これはクラス変数と完全に同じではありませんが (サブクラスによって継承されないため)、かなり近いものになります。

class X {
  static let y: Int = 4
  static var x: Int = 4
}

println(X.x)
println(X.y)

X.x = 5

println(X.x)