問題タブ [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.
ios - 保持サイクルの保持サイクル
保持サイクルであると思われるメモリが徐々に蓄積されています。
これが起こるのはいつですか:カスタム セルをクリックすると、拡張された領域に 3 つのボタンが付いたペン先が挿入されます。セルをもう一度クリックすると、セルが閉じ、セルの表の行の高さが縮小し、開いているインジケーターが回転し、以前に注入されたペン先が削除されます。
セルを何度も開いたり閉じたりすると、メモリが徐々に蓄積されていくのがわかります。
これを引き起こしている可能性のあるアイデアは大歓迎です。
申し訳ありませんが、写真を投稿するのに十分な評判がありません。
築き上げる:
保持されるオブジェクトの例 (主にアニメーション関連):
編集: ARC と iOS 6 の使用
MasterViewController - TableView 関数
SRChoiceBox - セルに挿入される UIView オブジェクト
SRCollapsibleCell -- 再利用可能なセル
//.h
//.m
iphone - この CAAnimation はリークまたは保持サイクルを引き起こしますか?
質問:以下のアニメーションが適用された UIView を含む ViewController の割り当てを解除すると、メモリ リークやリテイン サイクルが発生しますか?
つまり、このアニメーションを uiview に適用すると、uiview の親 VC が破棄または割り当て解除されたときに、メモリ リークまたは保持サイクルが発生しますか?
ios - iOS: シンプルな保持サイクル
次のようなviewControllerがあるとしましょう:
次に、タイマーを使用せずに、ある時点で保持サイクルを意図的に作成します。
質問:これらのプロパティを含む VC の割り当てが解除された場合、保持サイクルまたはメモリ リークが続く可能性はありますか?
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?
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の 質問には満足のいく答えがないことに注意してください。