[英]Static Analyzer - Memory Leak
在Xcode中,像[self.object release]一樣,在dealloc方法中釋放對象時,使用靜態代碼分析器將該行顯示為內存泄漏,但在運行儀器時未顯示為泄漏。
在這里,我的問題是BWN [self.object release]
和[object release]
有何不同?
請澄清一下
提前致謝。
self.object
實際上調用getter方法( [self object]
),該方法返回實例變量object
(或取決於合成方式),但是實例變量實際上包含保留的對象,因此必須執行[object release]
。 這是一個與合成的性能很好的做法: @synthesize object = _object
這樣你就不會感到困惑的屬性和實例變量的-你的財產將被self.object
,但實例變量將是_object
你要給[_object release];
而不是-
[self.object release]
您需要做-
self.object = nil; or [object release];
[self.object release]將釋放調用發送到屬性的getter返回的對象。 結果將取決於該屬性是否定義為assign / copy / retain。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.