我想在Xcode 6裡測試Retain Cycle,使用Xcode的Leaks Instrument去觀察內存洩漏情況
1.我寫了2個類,TTChild和TTParent,頭文件如下
@interface TTParent : NSObject
@property (nonatomic,strong) NSMutableArray *children;
@end
@interface TTChild : NSObject
@property (nonatomic,strong) TTParent *parent;
@end
2.然後在一個按鈕的動作方法裡寫了,如下代碼,
(IBAction)ClickMe:(id)sender {
TTParent *parent = [[TTParent alloc] init];
parent.children = [[NSMutableArray alloc] init];
for (int i = 0; i < 1000; i++) {
TTChild *child = [[TTChild alloc] init];
child.parent = parent;
[parent.children addObject:child];
}
}
3.用Instruments依次選擇Leaks-> Cycles&Roots->Leaks cycle,點擊多次按鈕,
出現紅色的內存洩露標志,但在Graph裡什麼都沒有顯示,上面的代碼不是應該有
強引用循環嗎,Graph應該有顯示啊,為什麼沒有呢,有人知道這是什麼原因嗎,
誰能解釋一下?
是循環引用,但Instrument不一定顯示