在已发布的NSString上泄漏

时间:2011-08-24 16:42:51

标签: iphone objective-c ios memory-leaks

我正在完成我的应用程序并且是时候修复所有泄漏了,所以我使用了仪器。

这是代码和泄漏...

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    [connection release];

    NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
    [responseData release];
    //NSString *responseString2 = [NSString stringWithFormat:@"%s%@%s", "[", responseString, "]"]; 
    // Pour ajouter les [] si y'en a pas autour de tout le contenu JSON, et on doit utiliser responseString2 au lieu de responseString à la ligne ci-dessous
    NSArray *tableau = [responseString JSONValue];
    [responseString release];
    NSDictionary *dico = [tableau objectAtIndex:0];

泄漏是responseString但是我把这个值放入数组后释放它...我怎样才能删除泄漏?我不明白我的错误。

1 个答案:

答案 0 :(得分:5)

泄漏显示泄漏的位置,而不是实际泄漏的地方;而不是造成问题的额外retain

使用Allocations工具跟踪对象上的所有保留/释放调用,并找到额外的保留。那将是你的泄密。


我对如何做Heapshot based analysis的解释应该对你有所帮助(因为它也可以用来跟踪这样的问题)。