2012-02-21 107 views
0

該程序正在做什麼是簡單地分配一個對象,然後釋放它。Xcode /儀器/泄漏:它可以顯示一個紅線,顯然沒有泄漏?

我是新來的儀器,所以我不知道我interpetingh這一權利:

Instruments screenshot

紅線表明有在那裏我分配該對象的點泄漏。但是在細節上,你可以看到它被釋放,並且refcount回到0.那麼爲什麼首先有一條紅線,它究竟告訴了我什麼?

編輯:這是檢測到的「泄漏」。從我的UIViewController代碼:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    Plant *plant = [[Plant alloc] initWithWeight:3 withSpecies:@"carrot"]; 

    [plant release]; 
} 
+0

你還可以添加程序的源代碼嗎? – Mankarse 2012-02-21 02:36:33

+0

那裏。我不認爲有必要發佈Plant的源代碼,因爲泄漏是在這裏報告的。 – 2012-02-21 04:41:06

+0

'initWithWeight:withSpecies:'store' self' anywhere?它是否創建任何塊?它是否將'self'作爲參數傳遞給任何函數或消息? – 2012-02-21 05:45:11

回答

0

我發現它來解釋。

該類有一個dealloc方法,最後沒有調用[super dealloc]。

1

,如果你有型植物的@property。

那麼這種泄漏可能使用

self.plant = someobject //some object retained. /(using setter) 

plant = someother object // previous value in self.plant leaked 

-(void) dealloc 
{ 
[plant release]; 
[super dealloc]; 
}