dog.h
#import
@class
person;
@inte***ce
dog : nsobject
@property (nonatomic,retain) person *owner;
@end
person.h
#import
@class
dog;
@inte***ce
person : nsobject
@property (nonatomic,retain) dog *dog;
@end
dog的dealloc函式中有[person dealloc],person的dealloc函式中有[dog dealloc]
main.m
int main(int argc, const
char * argv)
return
0;}
p.dog = d;
d.owner = p;
這兩句執行完畢後是這樣子的:
[ p release] ;執行完畢後是這樣子的:
[d release]; 執行結束是這樣子,於是造成記憶體洩露
讓一段使用@property的assign引數
例如在dog.h中
@property (nonatomic,assign) person *owner;
由於不是retain,在dog的dealloc函式中不需要在寫[_owner dealloc];
就可以解決問題。具體原因可以同上面的分析得出結論。
迴圈引用導致記憶體洩露 dealloc無法呼叫
在專案中,無意中把newswritecommentviewdelgate的屬性設定為了retain,導致迴圈引用,其他使用這個delegate的類引用計數出問題,然後在正常的使用alloc建立這個類物件和release釋放物件後無法呼叫類的dealloc函式,記憶體洩露是必然的。然後,在push進n...
Flex Fade效果導致記憶體洩露
因為這個問題,害我找了一晚上,乙個物件始終無法被釋放,崩潰了 最後在幾千行 裡逐一排查,終於找到了這個罪魁禍首 具體原因 通常我們給物件設定效果事件時如下 this.setstyle hideeffect o fadeout this.setstyle showeffect o fadein 當執行...
使用self 導致的記憶體洩露
請看第一段 在myobject.m中 self.aobj nsobject alloc init void dealloc 你能否看出這裡的記憶體洩露?接下來看第二段 aobj nsobject alloc init void dealloc 你能否看出這裡是否也有記憶體洩露呢?如果你都能夠很確定的...