最近、Facebook のアプリ切り替えでブロックを使用すると問題が発生しました。Facebook ログイン後にブロックを呼び出す必要がありました。
最初に、アプリが元に戻ったときにブロックが破棄されたので (スタック上にあったため)、保持することにしました。しかし、それはうまくいきませんでした。私はその問題を台無しにしました:/。そのブログとここでも解決策を見つけました。
私の質問は単純です:なぜコピーは機能し、保持は機能しないのですか?
別の同様の質問に対する私の最近の回答を参照してください。
デフォルトでは、ブロックはスタック上に作成されます。つまり、作成されたスコープ内にのみ存在します。
[...]スタックとヒープの
詳細については、Mike Ash によるObjective-C の Stack and Heap Objects を参照してください。