0

我注意到大多数人在初始化CAShapeLayer使用时:

CAShapeLayer *shapeLayer = [CAShapeLayer layer];

而不是使用初始化程序:

CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];

我想知道使用其中任何一种有什么特别的区别,或者哪一种通常更好?

4

1 回答 1

4

第一个返回一个自动释放的对象。由于它是自动发布的,因此您不是它的所有者。当自动释放池(它所在的)被释放时,该对象将自动为您释放。

第二个返回一个具有 +1 保留计数的对象。您是该对象的所有者,因此release对它负责。但是 - 使用 ARC,您可能不需要release像我们那样打电话。

相关链接:

  1. Objective C 方法族
  2. 基本内存管理规则
于 2012-11-10T15:12:44.727 回答