我需要知道这是否是一个保留周期。我在泄漏仪器中运行这个,我没有任何泄漏。
class myClass: UICollectionViewCell {
var aView = UIView()
func test() {
self.addSubView(aView)
}
}
答案 0 :(得分:1)
此代码不会导致保留周期,但在实践中也不起作用。
需要使用(合适的)框架初始化视图。
答案 1 :(得分:1)
如果你想在Swift中创建保留周期(我希望只是为了学习),你应该总是提出一个实例函数的引用意味着你也引用了实例。在分配变量时,您将创建一个强引用。确保在具有对实例的弱引用的闭包中包装此类引用,或者确保在完成后将变量手动设置为nil
答案 2 :(得分: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];
}
它会增加零售周期,因为父母和子女都有很强的参照对象
避免这个
@property (atomic,weak) TTParent *parent;