1

次のコードを使用して、複数のパラメーターが渡された遅延の後にセレクターを実行しています。

http://nifty-box.com/blog/2006/12/nsinvocation-cleans-code.html

それは非常にうまく機能しますが、これを拡張して次のものと同等のものをサポートする必要があります。

[NSObject cancelPreviousPerformRequestsWithTarget:self]

(この場合のターゲットは自己ではなく、_UFLatePerformer のインスタンスになると思います)

これを行う方法はありますか?私のビューの割り当て解除は、残りの遅延パフォーマンス要求をすべて強制終了できますか?

4

1 に答える 1

2

Mac では objc_setAssociatedObject を使用できますが、iPhone には存在しません。

したがって、基本的には、NSObject に渡すこれらの参照を保持するある種のマネージャー シングルトンが必要であり、それはあなたが望むことを行います。

私が似たようなことをしていたとき、アクションを実行するリクエストを受け取るシングルトン クラスを作成し、アクションが実行されるときに起動するタイマーを開始しました。もしそうなら、アクションを起動しました。したがって、タイマーを効果的にキャンセルでき、さらにマネージャーにタイマーをリセットするように指示することもできましたが、実際にはそうではありませんでした。新しいタイマーを作成しただけで、古いタイマーが実行するように要求されたアクションを起動すると、無効になりました。

したがって、基本的にタイマーはリクエスト ID だけでシングルトンをコールバックしていたため、コールの詳細を含む辞書エントリが作成されました。

于 2010-02-07T05:42:20.160 に答える