这似乎是在touchJSON内存泄漏(Memory leak that appears to be

2019-09-27 02:51发布

下面是我遇到的麻烦泄漏问题。 大部分代码是就在这里为背景,所以你可以看到“响应” NSData对象是不是出了什么泄漏。

如果我被泄漏工具,给我钻到touchJSON代码,以下堆栈跟踪,泄漏显然是在该行开始生活

 *outStringConstant ....  

但由于这是这样一个常用的图书馆,我怀疑这就是问题所在。

一个音符。 这不漏第一次它的执行,只有每一个后续的时间。 但它泄漏了很多,所以响应的数据可能是真实泄露的实际数据。

此外,如果有人熟悉touchJSON这个代码,能不能请你解释一下这个outStringConstant变量是和它做什么? 它似乎没有起到任何作用,除了要分配theString的副本,但如果我删除了这一行的代码崩溃。

我的代码是

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 CODE是

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

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

       [theString release];

    }
文章来源: Memory leak that appears to be in touchJSON