1

私のiOSアプリケーションでは、UITableViewControllerを使用してユーザーにアイテムのテーブルを表示し、アイテムを選択してもらい、そのアイテムを別のViewControllerに戻したいと考えています。テーブルビューコントローラーのプロトコルとデリゲートメソッドを定義し、テーブルビューコントローラーをモーダルに提示し、ユーザーがアイテムを選択したときにそれを閉じて、アイテムをデリゲートビューコントローラーに返すことで、これを正常に行うことができます。しかし、テーブルビューの検索表示コントローラーも実装すると(ユーザーがより長いリストで特定のアイテムを検索できるように)、メモリの問題が発生します。これを示すためにアップルの「TableSearch」の例を変更し、https://github.com/pistachionut/Table-Search-Exampleにコードを投稿しました

つまり、アプリは通常、テーブルビューでセルを選択した直後にEXC_BAD_ACCESSでクラッシュします。NSZombieEnabledで実行すると、保持カウントが0に達した後、テーブルビューコントローラーが-[UISearchDisplayController _destroyManagedTableView]によって呼び出されていることを示します。これが発生する理由を誰かが知っていますか?自分が担当している以上に、テーブルビューコントローラの追加リリースを行っているとは思いません。allocとinitWithNibNameを使用して作成し、モーダルで提示してから、すぐに解放します(私の例では、「PickProductViewController.m」ファイルの-(IBAction)showProductPicker:(id)senderを参照してください)。ありがとう!

4

1 に答える 1

1

ジェフが投稿した回答UISearchDisplayControllerの自動リリースにより、別のビューコントローラでクラッシュが発生する可能性はありますか?問題を解決します。

于 2011-05-22T07:39:21.553 に答える