这样写不会retain cycle么?
上代码,这是我在github上找画图的demo,只是觉得这段代码有点迷惑。
类名: AnimatedPathViewController
- (void) startAnimation{
[self.penLayer removeAllAnimations];
self.penLayer.hidden = NO;
CAKeyframeAnimation *penAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
penAnimation.duration = 10.0;
penAnimation.path = self.pathLayer.path;
penAnimation.calculationMode = kCAAnimationPaced;
penAnimation.delegate = self;
[self.penLayer addAnimation:penAnimation forKey:@"position"];
``}
问题就是在这里 penAnimation.delegate = self; 这里的delegate的property是retain类型的。这么写不会retain cycle么?
下面是我自己的想法:
penAnimation是本地变量,虽然其delegate=self,对self是强引用,但是AnimatedPathViewController的Instance的释放不会受其影响,该释放还是释放,这样的话penAnimation在release的时候也能释放了。
这么理解有问题么?(不晓得我说明白了没有,还忘各路大神出来解惑)