【发布时间】:2010-07-20 10:01:55
【问题描述】:
我不明白为什么 Instruments/Leaks 告诉我 viewDidLoad 中存在内存泄漏。我确实在dealoc中释放了两个对象,并在viewDidUnload中将它们设置为nil。有人可以在这里给我一个线索吗?
Instruments 的屏幕转储链接:http://i26.tinypic.com/28227iw.png
BR //克里斯托弗
【问题讨论】:
-
我不知道 Instrumens 是否有这样的智能,但 if 语句只包含 listOfItems 而不是 paymentMethods。 listOfItems 是否可能为 null 但 Paymentmethods 不是?如果是,那将是泄漏,但如前所述,我不确定我是否也以这种方式进行仪器分析。
-
这是的答案。如果 paymentMethods 不是 nil 并且 listOfItems 是 nil,那么您只需覆盖 paymentMethods 的值并丢失对数组的引用。因此,泄漏。
-
是的,这是正确的。此外,if 语句是多余的。您可以发送发布消息。如果它已经是 nil,你向 nil 发送一条消息,什么都不会发生。
标签: iphone objective-c memory-management