我注意到大多数人在初始化CAShapeLayer
时使用:
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
而不是使用初始化程序:
CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];
我想知道使用这些中的任何一个有什么特别的区别,或者哪个通常更好?
答案 0 :(得分:4)
第一个返回一个自动释放的对象。由于它是自动释放的,因此您不是它的拥有者。
,当自动释放池(它所在的位置)被释放时,该对象将自动释放第二个返回一个具有+1保留计数的对象。您是该对象的所有者,因此对release
负责。但是 - 使用ARC,您可能不需要像我们那样拨打release
。
相关链接: