CALayer addSublayer增加保留计数?

Jon*_*nas 2 iphone cocoa-touch objective-c

我认为当我将视图添加为像这样的子视图时:

UIView* view = [[UIView alloc] init];
[self addSubview:view];
[view release];
Run Code Online (Sandbox Code Playgroud)

之后释放视图是安全的......对于CALayer对象是否相同?如果我使用alloc/init创建CALayer,并执行:

[self.layer addSublayer:layer];
Run Code Online (Sandbox Code Playgroud)

以后释放该层是否安全?

Lou*_*arg 6

是.通常,如果对象A需要对象B,则对象A有责任保留它.因此,如果"self.layer"需要"layer",它将在addSublayer:中释放retainCount,并在不再需要时释放层.虽然有一些例外情况,但这些异常往往有很好的记录.