私のプロパティでは、プロパティを返す前にそのプロパティに値を割り当てています。次にアクセスされるときには、それがnil
であるかどうかをチェックして、それを再度割り当てるか、インスタンスを返すだけです。null-coalescing演算子と再生成可能なプロパティの代入の省略形ですか?
これは、私は今それをやっている方法です:
private var _myProp: MyInstance?
public var myProp: MyInstance {
if _myProp == nil {
_myProp = MyInstance()
}
return _myProp!
}
これは以下のように非常に非スウィフトを見て、これを行うための、よりエレガントな方法を期待していました。例えば、C#
に私はこれを行うことができます:
private var _myProp: MyInstance?
public var myProp: MyInstance {
return _myProp ?? (_myProp = MyInstance())
}
私はそれを割り当て解除できるようにプロパティを再生成可能できるようにしようとしているが、次回は再びインスタンスを作成しますアクセスされます。
スウィフトでは何か?あなたの回答の光で
内部プロパティに 'nil'にリセットする必要がありますか? –
'lazy var myProp = MyInstance()'はどうですか? - 編集:それはおそらくジョシュが考えていることでしょう。 –
しかし、私が 'myProp = nil'をどこかで実行すると、正しいインスタンスが再生成されませんか?私はプロパティを再生成可能にしようとしているので、 'nil'にするとインスタンスを再び自動的に作成します。 – TruMan1