問題タブ [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 投票する
0 に答える
452 参照

ios - 保持サイクルの保持サイクル

保持サイクルであると思われるメモリが徐々に蓄積されています。

これが起こるのはいつですか:カスタム セルをクリックすると、拡張された領域に 3 つのボタンが付いたペン先が挿入されます。セルをもう一度クリックすると、セルが閉じ、セルの表の行の高さが縮小し、開いているインジケーターが回転し、以前に注入されたペン先が削除されます。

セルを何度も開いたり閉じたりすると、メモリが徐々に蓄積されていくのがわかります。

これを引き起こしている可能性のあるアイデアは大歓迎です。

申し訳ありませんが、写真を投稿するのに十分な評判がありません。

築き上げる: http://imgur.com/Up6iAPr

保持されるオブジェクトの例 (主にアニメーション関連): http://imgur.com/8X2Tr8L

編集: ARC と iOS 6 の使用

MasterViewController - TableView 関数

SRChoiceBox - セルに挿入される UIView オブジェクト

SRCollapsibleCell -- 再利用可能なセル

//.h

//.m

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

iphone - この CAAnimation はリークまたは保持サイクルを引き起こしますか?

質問:以下のアニメーションが適用された UIView を含む ViewController の割り当てを解除すると、メモリ リークやリテイン サイクルが発生しますか?

つまり、このアニメーションを uiview に適用すると、uiview の親 VC が破棄または割り当て解除されたときに、メモリ リークまたは保持サイクルが発生しますか?

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

ios - iOS: シンプルな保持サイクル

次のようなviewControllerがあるとしましょう:

次に、タイマーを使用せずに、ある時点で保持サイクルを意図的に作成します。

質問:これらのプロパティを含む VC の割り当てが解除された場合、保持サイクルまたはメモリ リークが続く可能性はありますか?

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

ios - Am I using this block correctly?

Question: Am I using this block correctly? No leaks or retain cycles?

Question 1.5: Is this good style or should I just do an inline block?

0 投票する
3 に答える
7908 参照

objective-c - ARC での再帰的なブロックと保持サイクル

EDIT2:

いいえ。提案された回答は、非同期呼び出しに関するものです。通常の標準的な再帰呼び出しのように、同期呼び出しが必要です。

編集:

その間

警告やエラーなしでコンパイルすると、実行時に失敗し、unsafe_apply に NULL が格納されます。

ただし、これ:

警告なしでコンパイルされますが、さらに重要なことは、実際に実行されることです。

しかし、これはとても醜いです!


考慮してください(目的を公開するために、ビュー階層に色を付けます...)

次の警告が表示されます。

/Users/verec/Projects/solotouch/SoloTouch/BubbleMenu.m:551:42:Block pointer variable 'apply' is uninitialized when captured by block

提案された修正を適用すると:Maybe you meant to use __block 'apply'

/Users/verec/Projects/solotouch/SoloTouch/BubbleMenu.m:554:13:Capturing 'apply' strongly in this block is likely to lead to a retain cycle

コードを改ざんしてそれらの警告を取り除くためにさまざまな方法を試しました

しかし、事態はさらに悪化し、エラーに変わります。

私はこれで終わった:

ここでしなければならなかったように、ブロック内からすべてを行うことができ、恐ろしいバックパッチを適用する必要がない、より良い解決策は誰にもありますか?

これらのSO の質問はキャプチャに関するものselfであり、これらのSOの 質問には満足のいく答えがないことに注意してください。