2012-02-07 35 views

回答

1

做釋放,保留我的調查,最好的辦法是:

'MapsLocationView.h' 
@interface MapsLocationView : UIView { 
    int releaseCount; 
} 

'MapsLocationView.m' 
- (void)awakeFromNib { 
    releaseCount = 0; 
} 

-(id)retain { 
    NSLog(@"retain count+++:%d", [self retainCount]); 
    return [super retain]; 
} 

- (oneway void)release { 
    releaseCount++; 
    NSLog(@"releaseCount---:%d", releaseCount); 
    [super release]; 
} 

我還發現,如果你點擊通過鼠標右鍵的方法,你可以跳轉到它的定義:)

1

這不會是正確的方法,你應該使用泄漏儀或代碼分析以找到額外的釋放從

+0

問題是,額外的釋放發生在100次中的1次......在泄漏中這將是一項艱鉅的工作。單個斷點會幫助我...我希望:) – Stas 2012-02-07 16:23:55

+0

無論如何,我想知道如何做到這些簡單的事情,如果你不介意... – Stas 2012-02-07 16:24:43

+0

保留和釋放NSObject協議的方法,如果添加 - ( ID)保留到你的班級,它應該被調用。你應該增加保留計數並返回自我 – wattson12 2012-02-07 16:27:56

5

未來這只是做你的情況下,在Objective-C的其他地方。

- (oneway void)release; 
{ 
    [super release]; 
} 

- (id)retain; 
{ 
    return [super retain]; 
} 
+0

你的回答是完全正確的,但如果你不介意我想用更多的信息回答我自己的問題,謝謝 – Stas 2012-02-08 09:16:44