为啥苹果提供的 SimpleFTPSample 会泄漏内存?

Posted

技术标签:

【中文标题】为啥苹果提供的 SimpleFTPSample 会泄漏内存?【英文标题】:Does anyone know why the SimpleFTPSample that apple provides leaks memory?有谁知道为什么苹果提供的 SimpleFTPSample 会泄漏内存? 【发布时间】:2010-09-21 14:09:29 【问题描述】:

我注意到苹果提供的 SimpleFTPSample 泄漏内存。泄漏性能工具在使用“列表”示例时检测到泄漏。第二次按下“列表”按钮后检测到泄漏。有谁知道为什么?即有一个修复?我正在考虑在我的应用程序中使用 FTP,但不想创建泄漏的应用程序。谢谢。

【问题讨论】:

发布代码?指出它在哪里泄漏? 代码示例链接:developer.apple.com/library/ios/#samplecode/SimpleFTPSample/… 【参考方案1】:

(哦,老问题) 在 Build 下的 Statusbar 中使用“Build and Analyse”,这指出了AppDelegate.mPotential leak of object allocated on line 85 and stored into initialDefaultsChanged的第 85 行中的泄漏 我的解决方案是在第 96 行将 initialsDefaults 注册到 Defaults 后释放它

#if ! TARGET_IPHONE_SIMULATOR
    
        NSMutableDictionary *   initialDefaultsChanged;

        initialDefaultsChanged = [initialDefaults mutableCopy];
        assert(initialDefaultsChanged != nil);

        [initialDefaultsChanged setObject:@"" forKey:@"CreateDirURLText"];
        [initialDefaultsChanged setObject:@"" forKey:@"PutURLText"];

        initialDefaults = initialDefaultsChanged;
    
    #endif

    [[NSUserDefaults standardUserDefaults] registerDefaults:initialDefaults];
    [initialDefaults release];//add this

【讨论】:

以上是关于为啥苹果提供的 SimpleFTPSample 会泄漏内存?的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C 和 C++ 的区别都有哪些?为啥苹果会选择前者

为啥苹果13打开网页下面会有一段留白

为啥苹果推送通知服务有时会给我错误 500?

为啥苹果拍的照片发到安卓上变黑了

手机搜索出不来为啥?

为啥苹果手机老出现可能不支持此设备