获取内存泄漏对象 NSDate 和负责的库是UIKit负责的框架是 UIApplication:sendAction:to:from:forEvent:为什么会这样。我该如何解决这个内存泄漏问题。我根本不使用界面构建器。全部以编程方式完成
Event Type Responsible Library Responsible Caller
Malloc UIKit [UIApplication sendAction:to:from:forEvent:]
Autorelease UIKit [UIApplication sendAction:to:from:forEvent:]
Retain UIKit [UIApplication sendAction:to:from:forEvent:]
Release Foundation [NSAutoreleasePool release]
由于
答案 0 :(得分:3)
不介意仪器说负责的图书馆是UIKit。这只意味着内存的实际分配是在UIKit中完成的,但我几乎可以肯定泄漏的责任在你的代码中。这几乎是我对内存泄漏的经验,Instruments / Xcode发现负责的库是一个SDK框架。
我的建议是检查您分配的NSDate并确保它们全部已发布。有时,泄露的对象只与Instruments报告的类型间接相关。
最后发现泄漏原因的最有效方法是检查仪器显示泄漏时执行的代码(您使用哪个视图?哪个任务?等)
在没有看到你的代码的情况下,我可以说没有更精确的说法。
编辑:
查看你的代码,我建议你检查一下你会发生什么:
pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain];
如果pauseStart
引用一个对象,那么像这样分配会产生泄漏,因为你丢失了对前一个对象的引用;你可以这样做:
[pauseStart release];
pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain];
或更好
self.pauseStart = [NSDate dateWithTimeIntervalSinceNow:0];
(我假设pauseStart
是一种保留属性)。
希望这有帮助。