【发布时间】:2010-03-13 16:54:55
【问题描述】:
在设备上运行仪器时,我在 CFNetwork 中间歇性地导致恰好 3.5 KB 的内存泄漏,负责的帧是“HostLookup_Master::HostLookup....”
我已经阅读了许多关于这个问题的问题,并分别尝试了以下方法来修复泄漏:
-
在 applicationDidFinishLaunching 中包含以下内容:
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; [NSURLCache setSharedURLCache:sharedCache]; [sharedCache 发布];
在urlrequest中指定不从本地缓存加载。
以上都不起作用。我的实例化连接的类不会泄漏,因为它的实例在下载数据时被释放。我已经通过使用 Instruments 确认类的活动对象为 0 来验证这一点。
任何有关解决此泄漏的建议将不胜感激。
【问题讨论】:
-
从技术上讲,如果主机查找被缓存,它不会泄漏,因为它仍然被引用并且可以重用。我的意思是,缓存代码中可能存在泄漏,它永远不会释放它。如果确实是泄漏,请向 Apple 提交 Radar 错误报告。
-
NSURLConnection 在最好的时候会泄漏。多线程时它会泄漏很多。我不会担心应用商店批准的微小泄漏。
标签: iphone objective-c cocoa-touch