0

ネットワーク デバイスからビデオを表示する Safari プラグインであるビデオ ビューアーを作成しました。ビューアはビットマップ イメージを読み取り、準備し、次のように NSImageView オブジェクトに設定します。

NSBitmapImage *bmImg = [[NSBitmapImage alloc] initWithBitmapDataPlanes: . . .]
NSImage *img = [[NSImage alloc] init];
[img addRepresentation:bmImg];

イメージは、メイン スレッドの「setImage」を介して NSImageView に追加されます。ビデオは正常に表示されます。

私の質問は、「setImage」を介して次の画像を設定する行為により、前の画像とそれに関連付けられたビットマップ画像が解放され、その後解放されるべきではないでしょうか?

割り当てられたイメージに対して自分で [img release] を実行する必要がありますか?

img からイメージ担当者を削除して、それもリリースする必要がありますか?

前もって感謝します。

4

2 に答える 2

0

ここに投稿する前に、Cocoa メモリ管理ガイドを実際に読みました。ガイドをもう一度読んだら役に立ちましたが、それは非常に明白な解決策ではありませんでした。

解決策は、NSImageView の「setImage」に送信した後に、NSImage および NSBitmapImageRep インスタンスを解放することでした。

于 2009-10-15T15:56:58.270 に答える
0

Cocoa メモリ管理ガイドを実際に読んでみる必要があります。それはあなたのすべての質問に答えます。

于 2009-10-14T15:59:06.860 に答える