* kbcl0のページ#3
-(by [[K]],2019.04.28)
** (6) KAutoreleasePool
-''[1]'' KAutoreleasePoolは、もとはといえばObjective-CのAutoreleasePoolの真似をして作ったものですが、本家とは異なりリンクカウントなどの機能は持っていません。
-単純に「後でまとめてfreeする」ものを登録しておいて、後でまとめて一気にfreeできるだけです。
-登録する際にはデストラクタも登録できます。デストラクタが指定されていると、free直前にデストラクタを呼ぶようになります。

-''[2]'' kbcl0でのKAutoreleasePoolの使い方は以下の通りです。
 {
     KAutoreleasePool ap;
     ....
 }
-このように任意のスコープの冒頭にローカル変数としてKAutoreleasePool型のオブジェクトを宣言しておけば、以降のkautoreleasePool->alloc()はすべてこのapに登録されます。
-そしてスコープから抜ける時にすべてfreeされることになります。
-kclib1のところはclose()を呼び出す必要がありましたが、デストラクタが代用するようになったので、もうclose()を明示する必要はありません。
-kclib1のときはclose()を呼び出す必要がありましたが、デストラクタが代用するようになったので、もうclose()を明示する必要はありません。



* こめんと欄
#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS