2
我有一個帶有各種控件的窗體。其中一個控件允許用戶通過點擊控件後出現的模式視圖來更改正在提交的表單的類別。當用戶選擇更改表單類別時,表單需要根據新類別重新顯示控件。使用ARC時重新分配屬性
除了從表單的視圖中刪除以前的控件,有什麼我需要擔心的關於被丟棄的控件?認爲形式實現了以下方法:
- (void)showControls
self.controls = [NSMutableArray array];
for(UIControl *control in self.dataSource.controls){
[self.controls addObject:control];
[self.view addSubview:control];
}
}
如果我把這種方法多次(因爲用戶改變了形式類別,如前面所述),我認爲它會導致各種NSMutableArrays浮動周圍沒有任何指針是引用它們。這可以嗎?我使用ARC,它會自動收集那些「丟失」數組?
我在我的文章結尾處錯過了。 「收集」我的意思是指垃圾收集器。如果我沒有通過setter訪問'controls'並直接重新分配給屬性(即'controls = [NSMutableArray array]')?如果沒有ARC,那肯定會導致內存泄漏,但是怎麼樣呢? – maxedison 2012-02-26 21:25:01
ARC沒有垃圾收集器 - 抱歉,我不完全按照你的意思收集靜物。你說什麼,沒有ARC直接訪問伊娃,實際上可能泄漏或不保留,但與ARC不會發生。 – mattjgalloway 2012-02-26 21:40:11
對不起,我的術語是關閉的。我真的只是想知道在使用ARC和直接分配時這些對象是否會被正確釋放。這個問題已經得到解答。謝謝! – maxedison 2012-02-27 15:18:49