ある静的メンバ変数を宣言する方法次のエラーを生成します:スウィフト:私はクラスすなわち</p> <pre><code>class MyViewController: UIViewController { @IBOutlet weak var title: UILabel! static var staticSelf:MyViewController </code></pre> <p>この宣言のオブジェクトに設定する静的変数を持つクラスを宣言しようとしているクラス
"class var declaration requires an initializer expression or getter/setter specifier".
私はイニシャライザを追加する際にいくつかの試みを試みましたが、より多くのまたは異なるコンパイルエラーが発生しました。代わりに、私はエラーで言うようにgetter/setter指定子を追加しようとしましたが、これは実行時に無限ループに陥っています。私はいくつかのバージョンを試してみた、これは最新のものである:
class MyViewController: UIViewController {
@IBOutlet weak var title: UILabel!
static var staticSelf:MyViewController {
set (selfInstance) {
MyViewController.staticSelf = selfInstance
}
get {
return MyViewController.staticSelf
}
}
override func viewDidLoad() {
super.viewDidLoad()
MyViewController.staticSelf = self
}
}
setterメソッドの実装の最初の試みがstaticSelf = selfInstance
た、Xcodeはこれをエラーとしてフラグが立てられself.staticSelf = selfInstance
に自動修正し、それは、ANになりループを無限にするので、MyViewController.staticSelf = selfInstance
に変更しましたが、無限ループも作成されます。
私はこの設定を得るために何千ものことを試しましたが、目的のCで3秒で完了できました。今すぐSwiftにうんざりしています。
あなたは 'そうですね非オプション – Sulthan
にnil'を割り当てています。あなたはできました。 static var staticSelf:リスナー?= nil –
@Woofbeans:Swiftでうんざりしないでください!一度あなたはそれのハングアップを得るそれは実際に素晴らしいです:) – Lasse