Прежде всего, вы создаете новый объект CALayer, используя метод класса layer, а не alloc / init. Вот так: -
CALayer *l = [CALayer layer];
l.frame = CGRectMake(...);
l.position = CGPointMake(...);
l.anchorpoint = CGPointMake(0,0);
l.contents = (id)someCGImageRef;
[self.layer addSublayer:l];
Во-вторых, это то место, где вы можете открепиться, потому что если вы отпустите CALayer после добавления его в качестве подслоя к основному слою вашего представления, вы получите сбой. Или, по крайней мере, я сделал, и я думаю, что это потому, что метод класса layer добавляет слой в пул автоматического выпуска, поэтому, если вы выпускаете его самостоятельно, вы получаете двойной релиз, и он освобождается, даже если он все еще использует его.