[CALayer retain]: インスタンスの解放までメッセージを送信
これが起きる典型的な原因は、CALayerインスタンスが解放される前にretainメソッドが呼び出されたことです。CALayerのretainメソッドはCALayerインスタンスの参照カウントを1増やし、参照カウントが0になるとCALayerインスタンスは解放されます。
CALayerのretainを実施後、releaseもしくはautoreleaseを行わずにCALayerインスタンスの解放を実施しない場合、CALayerインスタンスは遅延解放され、遅延解放後にretainを実施した際は解放されたインスタンスにretainメッセージが送信され、プログラムがクラッシュします。
そのような事態を避けるために、retainメソッドのコール以降、適宜releaseメソッドもしくはautoreleaseメソッドを呼び出してCALayerインスタンスを解放し、CALayerインスタンスが適切なタイミングで解放されるようにする必要がある。