2011-09-15 4 views
1

私はNSMutableArrayインスタンスを持っていますが、その値(NSDictionary)をメソッドに送信したいのですが、それが漏れたり適切に解放されないようにする方法を考えています。ここでは、私が今やっているものです:助けるためこの場合、自動解放NSDictionaryを作成する方法は?

NSDictionary *pdata = [self.entries objectAtIndex:indexPath.row]; 

[self start_download:pdata]; 

[pdata release]; // <--> Is it ok to do this ? 

Thxを、

ステファン

答えて

3

あなたは絶対にpdataを解放するべきではありません解放されませんので、あなたがそれを保持したことがないため、PDATAが保持されませんでした。 -objectAtIndex:は所有していないオブジェクトを返します。それが戻った後-start_download:ニーズが(例えば、それはいくつかの非同期プロセスのために、その上に保持している場合)pdataを参照する場合、それはpdata自体を保持する必要があり、その後に行うの際には、pdataを解放する必要がありますが、それはあなたが貼り付けられたコードのビットに直交するのです。

まだ完了していない場合は、Cocoa Memory Management Rulesをお読みください。

2

あなたが終了し、ダウンロードして処理するstart_downloadためのデリゲートメソッドを持っていますか?あなたはそれから解放するべきです。

+0

はい、完成したダウンロードを処理する方法があります – Steve

4

あなたはアロケーション、コピー、またはあなたはそれが

2

私はstart_downloadにpdataの保持を行い、完了したら解放します。データを保持してリリースする必要があるルーチンを用意することは、オブジェクトをどのように取得したのか、後で何が起こるのか気にしないようにすることをお勧めします。

関連する問題