問題タブ [unowned-references]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - Swift シングルトンに [unowned self] を常に使用しても安全ですか?
[unowned self]
共有シングルトン インスタンスは常に存在するため、そのシングルトン クラス内のすべてのクロージャで安全に使用できますか?
swift - 内部クロージャのキャプチャ リストは、`self` を `weak` または `unowned` として再宣言する必要がありますか?
次のような関数にクロージャを渡した場合:
self を[weak self]
のsomeFunctionWithTrailingClosure
キャプチャ リストで再宣言せずに宣言するとweak
、 のキャプチャ リストanotherFunctionWithTrailingClosure
self
はすでにOptional
型になっていますが、それもweak
参照になっていますか?
ありがとう!
ios - Swiftでは、所有されていないものと弱い参照
Boneへの弱い参照を持つDogがある場合、これは、この状況では Dog が参照の「所有者」であり、bone を使用することを意味しますが、bone は存在しなくなり、 Dog は引き続き機能します (参照がto bone はオプションです)。
ただし、「unowned」の場合、所有者の参照の宣言ではなく、他のオブジェクトでキーワード「unowned」が使用されているようです。たとえば、Bone の犬への言及は「所有されていない」とマークされています。
未所有は安全ではありません。プログラムのある時点で所有者が存在しなくなるとクラッシュする可能性があり、オプションにすることはできません。弱い参照ではなく、所有されていないものを使用するのはなぜですか?
なぜ弱いだけを使わないのですか?私の理解では、大声で失敗することと、静かに失敗することと関係があります。所有されていない場合、ボーンが犬なしで終了すると、アプリは常にクラッシュしますが、weak を使用すると、まだ存在するボーンと「ゴースト」犬が存在することになります。