2016-05-13 47 views

回答

1

此代碼不會導致保留週期,但它在實際中也不起作用。

視圖需要用(合適的)框架進行初始化。

+0

是否有一個原因,它不會引起保留週期?我對此感到困惑。 –

+1

當兩個對象彼此保持強關聯時,會發生保留週期。在你的例子中有一個強大的參考,從超視圖到子視圖,但不是相反的方式 – vadian

+0

我有一個nub時刻.. omg。謝謝。 –

1

如果你想在Swift中創建保留週期(我希望只是爲了學習),你應該總是提出一個實例函數的引用意味着你也引用了這個實例。當分配給一個變量時,你正在創建一個強大的參考。確保在封閉包裹這種提法與弱參考實例或確保變量手動設置爲零,一旦你與他們做

+1

謝謝。我已經知道了。但由於某種奇怪的原因,今晚我坐在熒幕上,腦子裏一片空白。並不知道爲什麼它不會導致保留週期。我一直在編碼太多。我再次明白。謝謝 –

0

沒有也不會增加保留週期

本例將幫助你獲得更好的主意

@interface TTParent : NSObject 
@property (atomic) NSMutableArray *children; 
@end 

@implementation TTParent 

@end 

@interface TTChild : NSObject 

@property (atomic) TTParent *parent; 

@end 

@implementation TTChild 

@end 

在其它的類

TTParent *parent = [[TTParent alloc] init]; 
    parent.children = [[NSMutableArray alloc] init]; 
    for (int i = 0; i < 10; i++) { 
    TTChild *child = [[TTChild alloc] init]; 
    child.parent = parent; 
    [parent.children addObject:child]; 

} 

它會增加零售週期,因爲Parent和孩子有相互

的強引用以避免這個

@property (atomic,weak) TTParent *parent;

相關問題