2016-05-13 78 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;