2009-04-17 8 views
0

私は現在、NSURLConnectionの代理人であるクラスのインスタンス変数NSMutableStringを使用しています。変数は、デリゲートメソッドから返されるデータの文字列を構築するための責任がある:NSMutableStringのこの使用法はメモリリークですか?

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 

文字列「foo」で、それを保持して設定されたプロパティを持っています。私のクラスの初期化メソッドでは、次のように非常に単純なものです。

dataString = [[NSMutableString alloc] init]; 

クラスdeallocメソッドで解放されています。関連して

:didReceiveDataは:,私はこのようなVARを使用する:物事はトリッキー取得する場所

NSString *tmpString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    [dataString appendString:tmpString]; 
    [tmpString release]; 

今これはあります。 NSURLConnectionデリゲートを設定するクラスはシングルトン(主にNSURL *型の呼び出しを処理する)なので、私は自分のオブジェクトをどのように再利用するのかというだけでなく、そのため、私のconnectionDidFinishLoading中:クラスは、私は次のようしている:

// cache away data currently in dataString. 
[dataString release]; 
dataString = [[NSMutableString alloc] init]; 

私dataStringを扱うの戦略は、あなたの目は出血がありますか?私は記憶を漏らしていますか?私はそれをよりスマートにすることができますか?

答えて

0

あなたは、アプリケーション内のobjectのすべてのuseはメモリリークであるかどうか、私たちに依頼するつもりですか?

Read the documentation.the rules of object ownershipを学ぶと、毎回あなたの答えが表示されます。

漏れが疑われる場合は、InstrumentsのObjectAllocプローブを実行してください。 You've done this once already、明らかにあなたはどのように知っていますか? the leaks commandもあります。

関連する問題