UIViewAnimation setAnimationDidStopSelector未声明的选择器,它会崩溃吗?

时间:2013-04-03 04:03:56

标签: ios objective-c uiview uiviewanimation

我想知道将一个选择器分配给未声明的animationDidStopSelector时会发生什么。

例如:

[UIView setAnimationDidStopSelector:@selector(doThis)];

我有这行代码。调用动画后,它应该调用方法,doThis,对吧?但如果我没有声明doThis或者说我忘了宣布doThis,我的应用程序会崩溃吗? 或者UIView会忽略它吗?感谢。

1 个答案:

答案 0 :(得分:3)

如果动画有一个委托(setAnimationDelegate:), if 该代表没有实现doThis,它将会崩溃。

但是如果动画没有委托,它不会崩溃,因为没有人可以发送消息。什么都不会发生。

此外,以上所有假设您使用的是老式动画“块”,使用[UIView beginAnimations:nil context:nil]构建动画并以[UIView commitAnimations]结束动画。如果您使用animateWithDuration:delay:options:animations:completion:及其朋友的现代形式的动画构造,则没有委托,也没有didStopSelector;这方面的调用将被忽略,因为completion:处理程序将履行该角色。