デリゲートパターンの代わりに完了ハンドラブロックを許可するためUIAlertView
に、レギュラーの内部をラップしています。NSObject
問題は、オブジェクトのローカルインスタンスを割り当て、内部でを作成し、UIAlertView
そのデリゲートをオブジェクト自体に割り当てることです。アラートが表示され、ユーザーがボタンをタップすると、EXC_BAD_ACCESS
ARCが私のオブジェクトを解放し、アラートのデリゲートがそのオブジェクトであるため、アプリがクラッシュします。
この状況にどのように対処できますか?解決策は、ローカル変数をで修飾し __block
、完了ブロック内でオブジェクト自体を使用することですが、それは機能しません。
ちなみに、「UIalertView」をラップする代わりにサブクラス化すると機能しますが、ドキュメントにはアラートのサブクラス化は推奨されないと記載されているため、この問題を解決することをお勧めします。