为啥苹果提供的 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.m
Potential 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 会泄漏内存?的主要内容,如果未能解决你的问题,请参考以下文章