CoreAnimationでレイヤーを透明にするアニメーションについて質問です。

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"opacity"];
animation.fromValue = @1.0;
animation.toValue = @0.0;
animation.duration = 3.0;
[self.alayer addAnimation:animation forKey:@"opacity"];

のように3秒かけて透明化するアニメーションを追加しても、
3秒後にリセットされてレイヤーが再び見えてしまいます。
そのため最後に

self.alayer.opacity = 0.0;

を付け足すと今度は標準のアニメーションが実行されて3秒になりません。
3秒後にきちんと透明化されたままにするにはどうすればいいんでしょう?