問題タブ [retain-cycle]

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.

0 投票する
1 に答える
77 参照

ios - Swift のオブジェクトと配列を扱う場合、保持は本当に重要ですか?

この質問の目的のために、任意のタイプのデータを表すクラスがあるとしましょう。これらのクラスのオブジェクトは、ネットワークを形成するために互いに「接続」できます。

私が理解していることから、Swift 配列はオブジェクトを保持します。複数の相互リンクされたDataObjectインスタンスが発生した場合、保持によってパフォーマンスの低下やメモリ リークが発生する可能性はありますか? そして、この特定の問題パターンは何と呼ばれていますか?

0 投票する
2 に答える
382 参照

ios - 保持サイクルとインスツルメント

私はちょうどこの保持サイクルを書いた:

明らかに、Driver と Car には強力なプロパティがあります。

とにかく、Instruments は Xcode 6.1 の Leaks -> Cycles & Roots で保持サイクルを表示していません。

リテインサイクルですよね?何が起こっているのですか?

0 投票する
2 に答える
130 参照

objective-c - Cocos2d で ARC を使用して子ノードへの参照をプロパティ保持する方法

多数の子ノードを持つカスタムCCNodeクラスがあり、いくつかのカスタム トランジションを作成するために、子への参照を保持したいと考えています。

たとえば、子の背景の場合、カスタム クラスは次のようになります。

問題は、これにより ARC で保持サイクルが発生し、ノード バックグラウンドがメモリから解放されないことです。

0 投票する
0 に答える
68 参照

cocos2d-iphone - ARC のカスタム クラスで子 CCNode へのローカル参照を適切に保持する方法

そのため、保持サイクルを作成せずに、またはプロパティまたはインスタンス変数が予測できないように設定されている可能性があるとコンパイラが不平を言うことなくCCNode、カスタムクラスの子へのローカル参照を保持したいCCNodenil

たとえば、このカスタムクラスで

...このようなノードを作成する保持サイクルがあります

wherebackgroundnodeは、シーンが置き換えられたときにメモリから解放されることはありません

プロパティbackgroundを weak に変更すると、上記のコードのアスタリスク (*) の付いた行で、コンパイラは、weak プロパティまたはインスタンス変数が予測不能に設定されている可能性があることを報告します。nil

アップデート:

これは、弱いインスタンス変数とセトラー メソッドとゲッター メソッドを使用する別のアプローチです。ローカルの強い変数 (*) は、メソッドが弱い ivar を使用する場合_background、コンパイラーが nil に設定されていると予測できない可能性があると文句を言うためです。

この場合、このアプローチは良いことですか?

0 投票する
2 に答える
675 参照

ios - ブロック内の強い参照を持つ弱い変数: 保持サイクルを作成しませんか?

ブロック内で弱い参照を強い参照に渡すと、なぜ機能するのですか? ブロック内のローカル変数が保持されている場合、保持が追加され、selfこの悪い保持サイクルが作成されますか?

例は次のとおりです。

0 投票する
1 に答える
2714 参照

ios - Swift 保持サイクルと閉鎖

私は保持サイクルを理解するために多くの研究をしようとしました。しかし、私の例では何も見つからないようです。プロパティをクロージャーに設定すると、保持サイクルが発生し、弱いまたは所有されていないものを使用する必要があることを私は知っています。しかし、それらが正しく行われているかどうかを知りたい 2 つの例があります。

シンプルなアニメーション

配列を使ったアニメーション

これらの例の両方で、selfは のサブクラスですUIView。私はそれを正しく行っているか、または imageView を弱参照として使用する必要があるかどうかを知りたいだけです。ありがとう。

0 投票する
6 に答える
13728 参照

ios - UIView.animateWithDuration(...) のクロージャーで [unowned self] を使用する必要がありますか?

メモリリークを回避する必要がありますか?

0 投票する
1 に答える
78 参照

ios - 変数として格納された関数は参照サイクルを引き起こす可能性がありますか?

他のクラス関数を変数として格納するクラスがある場合、参照サイクルが発生する可能性がありますか?

例えば

変数関数を弱いまたは所有されていないとして ClassB に格納できないため、参照サイクルが発生する可能性がありますか? それとも、これは参照サイクル/機能に関する私の理解が不十分であることを反映しているだけですか?

0 投票する
4 に答える
1850 参照

ios - Do I need to use a weak self pointer if a method called from a Block uses self?

Using self. in blocks causes retain cycles, so I need to create a reference to weakSelf. I understand this

BUT!

If from my block I call a method which uses self", does this too cause a retain cycle? For instance, if I reload a UITableView from a block and in some of my UITableView delegate methods I call self., am I causing a retain cycle? Does that mean I have to pass around this weak reference everywhere? Seems hokey.