Ios UIViewAnimation setAnimationDidStopSelector未声明的选择器,它会崩溃吗?
我想知道当您将选择器分配给未声明的animationDidStopSelector时会发生什么 例如:Ios UIViewAnimation setAnimationDidStopSelector未声明的选择器,它会崩溃吗?,ios,objective-c,uiview,uiviewanimation,Ios,Objective C,Uiview,Uiviewanimation,我想知道当您将选择器分配给未声明的animationDidStopSelector时会发生什么 例如: [UIView setAnimationDidStopSelector:@selector(doThis)]; 我有这行代码。调用动画后,应该调用方法doThis,对吗?但是如果我没有声明doThis或者我忘了声明doThis,我的应用程序会崩溃吗? 或者UIView会忽略它吗?谢谢。如果动画有一个代理(setAnimationDelegate:),并且该代理未实现此操作,则它将崩溃 但是,
[UIView setAnimationDidStopSelector:@selector(doThis)];
我有这行代码。调用动画后,应该调用方法doThis,对吗?但是如果我没有声明doThis或者我忘了声明doThis,我的应用程序会崩溃吗?
或者UIView会忽略它吗?谢谢。如果动画有一个代理(setAnimationDelegate:
),并且该代理未实现此操作,则它将崩溃
但是,如果动画没有委托,它将不会崩溃,因为将没有人向其发送消息。什么也不会发生
此外,以上所有内容都假设您正在使用老式的动画“块”,使用[UIView beginAnimations:nil context:nil]
构建动画,并以[UIView commitAnimations]
结束动画。如果将现代形式的动画构造与animateWithDuration:delay:options:animations:completion:
及其好友一起使用,则没有委托和didStopSelector
;您在这方面的调用将被忽略,因为完成:
处理程序完成了该角色。它将崩溃,因为它将在动画停止时查找要调用的选择器,顺便问一下,当您不需要它时,您为什么要定义它?哦。我只是好奇。因为有时您认为您已经声明了该方法,但却忘记了。或者当您之前声明了它,但由于不再需要它而删除了它,并且忘记了将其作为选择器调用。无论如何,谢谢你的回复。