2010-10-08 34 views
1

我有自動釋放的對象,我將其分配給對象上的合成(保留)屬性,但它將它們標記爲泄漏。泄漏只是有時會產生誤報或者我錯過了什麼?儀器中的泄漏工具是否會產生誤報?

+1

儀器已經知道產生假陽性,但你描述的是一個合法的泄漏。見下文。 – 2010-10-08 16:55:31

回答

6

保留屬性將否決autorelease。

編輯爲了清楚起見,我並不是說要推翻。我的意思是...它會阻止autorelease強制執行dealloc。查看所有骯髒細節的評論。

你應該手動釋放該財產在你的dealloc,讓自動釋放自生自滅

+0

或者只是將屬性設置爲這樣:'self.MyProperty = nil'將始終釋放項目 – 2010-10-08 16:57:36

+1

Nitpicking,但不存在「overrule」。保留屬性的合成訪問器爲該對象提供*額外*所有權聲明,然後需要通過相應版本進行平衡。 (這可能來自對訪問者的另一個調用,正如@Richard所建議的那樣)。與此同時,autorelease正常地自動釋放。 – walkytalky 2010-10-08 17:18:28

+0

我試圖用外行的話來說明。鑑於問題的性質,我不確定整個技術概覽會有多大幫助。 – 2010-10-08 17:21:38