1

これが私が問題を抱えているリークの問題です。このコードのほとんどはコンテキストのためにここにあるので、「応答」NSDataオブジェクトがリークしているものではないことがわかります。

LEAKSツールによって与えられたスタックトレースに従ってtouchJSONコードにドリルダウンすると、リークは明らかにラインで始まります。

 *outStringConstant ....  

しかし、これは非常に一般的に使用されるライブラリであるため、問題ではないかと思います。

1つのメモ。これは、最初に実行されたときにリークするのではなく、それ以降は毎回リークします。ただし、リークが多いため、応答データはリークしている実際のデータである可能性があります。

また、touchJSONとこのコードに精通している人がいる場合は、このoutStringConstant変数とは何か、そしてそれが何をするのかを説明していただけますか?その行を削除するとコードがクラッシュしますが、Stringのコピーが割り当てられる以外は、何の役割も果たしていないようです。

私のコードは

dataRequestURL = [NSString stringWithFormat:@"http://www....",  ...];

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:dataRequestURL]  cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30];

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:&ts_response error:&ts_error];

NSArray *array = [[CJSONDeserializer deserializer] deserialize:response error:nil]; <- LEAKS HERE

TOUCHJSONコードは

   -(BOOL)scanJSONStringConstant:(NSString **)outStringConstant error:(NSError **)outError {

    NSMutableString *theString = [[NSMutableString alloc] init];
if (outStringConstant != NULL) { *outStringConstant = [[theString copy] autorelease]; }

       [theString release];

    }
4

0 に答える 0