1

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

例如:

[UIView setAnimationDidStopSelector:@selector(doThis)];

我有这行代码。调用动画后应该调用方法doThis吧?但是如果我没有声明 doThis 或者假设我忘记声明 doThis,我的应用程序会崩溃吗?还是 UIView 会忽略它?谢谢。

4

1 回答 1

3

如果动画有委托 ( setAnimationDelegate:) 并且委托没有实现,它将崩溃doThis

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

此外,以上所有内容都假设您使用的是老式动画“块”,以 . 构造动画[UIView beginAnimations:nil context:nil]并以[UIView commitAnimations]. 如果您使用现代形式的动画构造 with animateWithDuration:delay:options:animations:completion:and its friends,则没有 delegate 和 no didStopSelector;您在这方面的调用将被忽略,因为completion:处理程序履行了该角色。

于 2013-04-03T04:07:42.903 回答