是foobar:完成:上下文:UIView动画委托方法真的给BOOL完成了吗?

时间:2010-03-18 16:16:54

标签: iphone core-animation

Althoug我到处读到方法签名有一个BOOL完成,我永远不会得到错误。这总是如此。而现在奇怪的是:

当我使用%d NSLog时,它总是32或40.我拥有的其他BOOL是1或0.这没有任何意义。所以:不是布尔,对吗?

那是什么呢,真的吗?

1 个答案:

答案 0 :(得分:3)

did stop委托选择器的方法签名是

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context;

finished参数是一个NSNumber,它包含一个布尔值。在Objective-C和其他语言中,任何非零值都被认为是真的(甚至是负数)。

您可以在NSNumber实例上调用[finished boolValue]以获得真实的BOOLYESNO值。

如果动画在完成动画之前被取消或以其他方式中断,则finished布尔值将为NO。如果动画完全运行,那么它将是YES

来自文档:

  

<强>完成

     

包含布尔值的NSNumber对象。如果动画在停止之前运行完成,则值为YES;如果动画没有,则为NO