質問

のNSViewがdealloc'edされるときを検出する方法はありますか?

理由は、私は(リターン/タブキーを入力することができるようにする:TextViewに:doCommandBySelectorな-controlを扱うNSTextFieldデリゲートなど)いくつかの単純なデリゲートを持っています。私はペン先、ワイヤーアップNSTextFieldのデリゲート接続で、このデリゲートオブジェクトを固執したいし、それが動作する必要があると思います。

そして、それは作業を行いますが、デリゲートは、それがリリースされ、そのデリゲートオブジェクトがリークされるにリンクされても、NSTextField後に解放されることはありません。

からデリゲートオブジェクトに別のリンクを保存する必要が私を残している、私はNSTextFieldがdealloc'edされたときに検出できるようにするには、デリゲートオブジェクトが欲しいが、私はこれを行うにはどのような方法を考えることはできませんいくつかの他のコントローラと、手動非常に少ない理想的であるいくつかの時点でそれを放出します。任意のアイデア?

役に立ちましたか?

解決

私は以前、このための良い外観を持っていたし、オブジェクトが割り当て解除されたときに観察するどのような方法があるように表示されません。私は弱いポインタクラスでそれを行うための一つの方法を見てきましたが、それは厄介な得ることができますISAスウィズリングを伴います。ここでは、ウェブサイトがある: http://www.cocoadev.com/index.pl?WeakPointers

ペン先の所有者の割り当てが解除されたとき、彼らは別の場所で保持されない限り、nibファイルから作成されたオブジェクトは、割り当て解除されなければなりません。例えば、NSWindowControllerの割り当てを解除されたときには、ペン先がロードされたときに作成されたすべてのオブジェクトを解放します。デリゲートオブジェクトが割り当て解除されていない場合は、おそらく彼らは別の場所で保持されているので、それはだ、または保持サイクルがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top