1

宣言されていない animationDidStopSelector にセレクターを割り当てるとどうなるか知りたいです。

例えば:

[UIView setAnimationDidStopSelector:@selector(doThis)];

私はこのコード行を持っています。アニメーションを呼び出した後、メソッド、doThis を呼び出す必要がありますよね? しかし、doThis を宣言しなかった場合、または doThis を宣言するのを忘れたとしましょう。アプリはクラッシュしますか? それともUIViewはそれを無視しますか? ありがとう。

4

1 に答える 1

3

アニメーションにデリゲート ( ) がありそのデリゲートが実装されていない場合、クラッシュします。setAnimationDelegate:doThis

ただし、メッセージの送信先が存在しないため、アニメーションにデリゲートがない場合でもクラッシュしません。何も起こりません。

また、上記のすべては、昔ながらのアニメーション「ブロック」を使用していることを前提としており、アニメーションを で構築し、[UIView beginAnimations:nil context:nil]で終了します[UIView commitAnimations]。とその仲間で最新の形式のアニメーション構築を使用する場合、animateWithDuration:delay:options:animations:completion:デリゲートも もありませんdidStopSelectorcompletion:ハンドラーがその役割を果たすため、その点に関する呼び出しは無視されます。

于 2013-04-03T04:07:42.903 に答える