我注意到大多数人在初始化CAShapeLayer时使用:
CAShapeLayer *shapeLayer = [CAShapeLayer layer];而不是使用初始化器:
CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];我想知道使用这两种方法中的哪一种有什么特别的区别,或者哪一种通常更好?
发布于 2012-11-10 23:12:45
第一个函数返回一个自动释放的对象。因为它是自动发布的,所以你不是它的所有者。当自动释放池(它所在的池)被释放时,该对象将自动为您释放。
第二个函数返回一个保留计数为+1的对象。您是该对象的所有者,因此负责对其执行release操作。然而,使用ARC,你可能不需要像我们那样调用release。
相关链接:
https://stackoverflow.com/questions/13323087
复制相似问题