Ios drawInContext中的NSLog从未停止

Ios drawInContext中的NSLog从未停止,ios,objective-c,Ios,Objective C,我很好奇当我用CABasicAnimation设置图层动画时会发生什么,所以我在图层的-(void)drawInContext:(CGContextRef)ctx中放置了一个NSLog。但这种行为相当奇怪,它会遍历所有值,然后继续记录最后一个值或非常接近它的值 CABasicAnimation *animation = [CABasicAnimation animation]; animation.duration = 5.0; animation.fillMode = kCAFillModeF

我很好奇当我用
CABasicAnimation
设置图层动画时会发生什么,所以我在图层的
-(void)drawInContext:(CGContextRef)ctx
中放置了一个
NSLog
。但这种行为相当奇怪,它会遍历所有值,然后继续记录最后一个值或非常接近它的值

CABasicAnimation *animation = [CABasicAnimation animation];
animation.duration = 5.0;
animation.fillMode = kCAFillModeForwards;
animation.removedOnCompletion = NO;
animation.delegate = self;
animation.fromValue = [NSNumber numberWithInt:255];
animation.toValue   = [NSNumber numberWithInt:0];
这将生成一个带有
NSLog
记录动画值的以下命令

...
value: 14
value: 13
value: 12
value: 11
value: 10
value: 9
value: 8
value: 7
value: 7
value: 6
value: 5
value: 4
value: 3
value: 3
value: 2
value: 1
value: 0
value: 0
value: 0
value: 0
...

它从不停止,它一直记录
0
。为什么会这样?这是否意味着当
NSLog
不存在时,会多次调用此方法?

那么您的animation.removedOnCompletion是否


必须有人绘制您的图层,因此有时可能会出现这种情况

如果不将该属性设置为“否”,您会建议我如何实现相同的结果?我确实希望动画完成后状态保持不变。但是,如果动画达到了它的目标结果,为什么它会继续“绘制”?