次のように、「AddSubview」メソッドを呼び出すメインビューがあると想像してください。
[mainView addsubview:secondView];
...この2番目のビューには、UIkeyboardを表示し、テキストを入力し、アプリでこれを使用して、最後にUIkeyboardを閉じるための適切なコードを含むsearchBarがあります。Ok。
プログラムのこの部分が完了したら、次のように「AddSubview」メソッドをもう一度呼び出します。
[secondView removeFromSuperview];
[mainView addsubview:thirdView];
これが行われると、2番目のビューが消え、3番目のビューに置き換えられます。しかし...2番目のビューで使用されるメモリの割り当ては解除されません。さらに重要なことに、UIkeyboard(約800 Ko)で使用されるメモリは、アプリを終了するまで割り当てが解除されず、2番目のビューを3番目のビューに置き換えてもアクティブなままです。
それで、UIkeyboardによって使用されるメモリの割り当てを適切に解除する方法はありますか?
(精度:上記のコードでは、3つのUIviewはすべてManView、SecondView、ThirdViewという名前の3つのクラスファイルにサブクラス化されています。これらはそれぞれNIBファイルの3つのUIviewsオブジェクトに対応します。これらの各ファイルに「dealloc」メソッドを配置しました。 。しかし、明らかに、呼び出されたことはありません...)