読者です 読者をやめる 読者になる 読者になる

autorelease

うーん、どうもautoreleaseでは望みの事ができないようだ。
自動解放プールをメインループの最初でつくり、
最後で解放しているのだが、
そこでautoreleaseのオブジェクトに対し、
releaseが飛んでしまうため意図した動きにならないやうだ。

(追加したリスト分のreleaseが予め呼ばれてしまうため)
オーナシップとしては
リストに追加されている事にしつつ、
リストからの参照カウンタを持たず、
自分だけのreleaseで参照カウンタを0にし、
deallocでリストから削除する
としたかったが、
リストに対するremoveObject:selfでreleaseが呼ばれてしまうため、
参照カウンタが一致しないので気持ち悪いのと、
そのせいでかdeallocが重複して呼ばれてしまう。
オーナシップの移動ならまだしも、
参照されているのに参照されていないことにするのが駄目なのだろうか。
releaseされているのにreleaseされるからか?

deallocで、
リストから外すという事をやっぱりやめて、
解放メソッドを用いて、
リストから外し、さらに自身のreleaseも呼ぶことで解放する
という方式を続けてみる。
もう少し悩まないとわからないようだ。