0

CAShapeLayer使用を初期化するときに、ほとんどの人が次のことに気付きました。

CAShapeLayer *shapeLayer = [CAShapeLayer layer];

イニシャライザを使用する代わりに:

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

これらのいずれかを使用することに特別な違いがあるのでしょうか、それとも通常はどちらが優れているのでしょうか?

4

1 に答える 1

4

最初のものは自動解放されたオブジェクトを返します。自動解放されているため、あなたはその所有者ではありません。自動解放プール (オブジェクトが存在するプール) が解放されると、オブジェクトは自動的に解放されます。

2 つ目は、保持カウントが +1 のオブジェクトを返します。あなたはそのオブジェクトの所有者であり、したがって責任がreleaseあります。ただし、ARC を使用すると、当社の場合のように電話する必要がない場合がありますrelease

関連リンク:

  1. Objective C メソッドファミリー
  2. 基本的なメモリ管理規則
于 2012-11-10T15:12:44.727 に答える