私はこれらの二つのアプローチしようとしている:ボタンを押しに対応して次の実行ループで実行:GCDで何が問題になっていますか?
dispatch_async(dispatch_get_main_queue(),^{
[self handleClickAsync];
});
と
[self performSelector:@selector(handleClickAsync) withObject:nil afterDelay:0];
を。
UIButton
は、次の実行ループでhandleClickAsync
を実行して実行することができます(確かに「後で」と思われます)。最初の操作では、操作が完全に完了するまで、UIButton
インスタンスが点灯しません。
GCDでこれを行う正しい方法は何ですか、またはperformSelector
はまだ唯一の方法ですか?
は、おそらくあなたは別のディスパッチキューの内側からこれを呼び出していますか?存在する場合は、すべてのコマンドをキュー内で順番に実行します。操作を開始する前にこのメソッドを呼び出すことは可能ですか? –
わかりません。私はこれを 'touchesEnded'から直接呼び出しています。これは' UIView'サブクラス(またはこの場合はUIButton)で無料で提供されます。 –
なぜ私はdispatch_asyncとrunloopの実行との関連付けをしているのか分かりません。 –