Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIViewAnimation setAnimationDidStopSelector未声明的选择器,它会崩溃吗?_Ios_Objective C_Uiview_Uiviewanimation - Fatal编程技术网

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

Ios UIViewAnimation setAnimationDidStopSelector未声明的选择器,它会崩溃吗?,ios,objective-c,uiview,uiviewanimation,Ios,Objective C,Uiview,Uiviewanimation,我想知道当您将选择器分配给未声明的animationDidStopSelector时会发生什么 例如: [UIView setAnimationDidStopSelector:@selector(doThis)]; 我有这行代码。调用动画后,应该调用方法doThis,对吗?但是如果我没有声明doThis或者我忘了声明doThis,我的应用程序会崩溃吗? 或者UIView会忽略它吗?谢谢。如果动画有一个代理(setAnimationDelegate:),并且该代理未实现此操作,则它将崩溃 但是,

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

例如:

[UIView setAnimationDidStopSelector:@selector(doThis)];
我有这行代码。调用动画后,应该调用方法doThis,对吗?但是如果我没有声明doThis或者我忘了声明doThis,我的应用程序会崩溃吗? 或者UIView会忽略它吗?谢谢。

如果动画有一个代理(
setAnimationDelegate:
),并且该代理未实现
此操作,则它将崩溃

但是,如果动画没有委托,它将不会崩溃,因为将没有人向其发送消息。什么也不会发生


此外,以上所有内容都假设您正在使用老式的动画“块”,使用
[UIView beginAnimations:nil context:nil]
构建动画,并以
[UIView commitAnimations]
结束动画。如果将现代形式的动画构造与
animateWithDuration:delay:options:animations:completion:
及其好友一起使用,则没有委托和
didStopSelector
;您在这方面的调用将被忽略,因为
完成:
处理程序完成了该角色。

它将崩溃,因为它将在动画停止时查找要调用的选择器,顺便问一下,当您不需要它时,您为什么要定义它?哦。我只是好奇。因为有时您认为您已经声明了该方法,但却忘记了。或者当您之前声明了它,但由于不再需要它而删除了它,并且忘记了将其作为选择器调用。无论如何,谢谢你的回复。