iphone - 泄漏已发布的NSString

标签 iphone objective-c ios memory-leaks

我正在完成我的应用程序,是时候解决所有泄漏问题了,所以我使用了Instruments。

这是代码和泄漏...

- (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泄漏,但是将这个值放入数组后释放它...如何删除泄漏?我不明白我的错误。

最佳答案

泄漏向您显示泄漏的分配位置,而不是泄漏的实际位置。而不是导致问题的多余retain

使用分配工具来跟踪对象上的所有保留/释放调用,并查找额外的保留。那将是你的泄漏。

我对Heapshot based analysis的用法说明应该会对您有所帮助(因为它也可以完全用来跟踪问题)。

关于iphone - 泄漏已发布的NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7179150/

相关文章:

iphone - 在 ios 中将日历添加到文本字段单击

c++ - 在 xcode 的 ios 项目中实现 C++ bitvector

iphone - 如何在iPhone(iOS)中设置pickerview的高度?

iphone - 如何在 Cocoa Touch 上延迟的同时保留响应式 GUI?

iphone - 使用 BJImageCropper 在 iOS 中裁剪图像

ios - 如何捕获完整的 tableView ios 屏幕截图

ios - 屏幕跟踪未显示在 Google Analytics iOS 上

iphone - 如何在IBAction中传递参数?

ios - SQLite DB - 执行结果是什么意思?

ios - 使用 viewDidAppear 自动登录不利用导航 Controller