我想知道当您将选择器分配给未声明的 animationDidStopSelector 时会发生什么。
例如:
[UIView setAnimationDidStopSelector:@selector(doThis)];
我有这行代码。调用动画后应该调用方法doThis吧?但是如果我没有声明 doThis 或者假设我忘记声明 doThis,我的应用程序会崩溃吗?还是 UIView 会忽略它?谢谢。
我想知道当您将选择器分配给未声明的 animationDidStopSelector 时会发生什么。
例如:
[UIView setAnimationDidStopSelector:@selector(doThis)];
我有这行代码。调用动画后应该调用方法doThis吧?但是如果我没有声明 doThis 或者假设我忘记声明 doThis,我的应用程序会崩溃吗?还是 UIView 会忽略它?谢谢。
如果动画有委托 ( setAnimationDelegate:
) 并且该委托没有实现,它将崩溃doThis
。
但如果动画没有委托,它不会崩溃,因为没有人可以向其发送消息。什么都不会发生。
此外,以上所有内容都假设您使用的是老式动画“块”,以 . 构造动画[UIView beginAnimations:nil context:nil]
并以[UIView commitAnimations]
. 如果您使用现代形式的动画构造 with animateWithDuration:delay:options:animations:completion:
and its friends,则没有 delegate 和 no didStopSelector
;您在这方面的调用将被忽略,因为completion:
处理程序履行了该角色。