在已发布的NSString上泄漏

cle*_*ent 1 iphone memory-leaks objective-c ios

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

这是代码和泄漏......

- (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];
Run Code Online (Sandbox Code Playgroud)

这是responseString泄漏但是我将这个值放入数组后释放它...如何删除泄漏?我不明白我的错误.

bbu*_*bum 5

泄漏会告诉您泄漏的位置,而不是实际泄漏的位置; 不是retain引起问题的额外因素.

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


我对如何进行基于快照的分析的解释应该对您有所帮助(因为它也可以用来跟踪这样的问题).