0
我注意到大多数人来说,初始化CAShapeLayer
使用时:差之间[CAShapeLayer页头] INIT]和[CAShapeLayer层]
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
而不是使用初始化:
CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];
我我想知道使用这两种方法有什么特别的区别,或者哪一种通常更好?
谢谢,我已经知道的内存管理的影响,但不明白为什么与CALayers人用[CALayer的层]代替分配一个新的对象。是否用于缓存目的? –
手动内存管理:由于第一种方法返回autorelease对象,它会自动释放,我们通常在单独的方法实现中执行此操作。这是因为我们不需要在其上调用'release'。而如果你做了alloc + init,你需要释放它,对吧?否则,您将在创建对象时泄漏内存并且未释放内存。但是,使用ARC则无关紧要。 – 2012-11-10 15:32:27
@StackOverFlowRider。我认为你误解了[CALayer图层]的作用。它确实分配/初始化一个新对象 - 唯一的区别是内存管理效果。 – rdelmar