2

どうすればキャンセルできperformSelectorOnMainThreadますか?

私はこのコードを持っています:

myClass = [[MyClass alloc] init];

[myClass performSelectorOnMainThread:@selector(setupPlayer) withObject:nil waitUntilDone:YES];
4

2 に答える 2

3

ドキュメントごと:

このメソッドを使用してキューに入れられたメッセージをキャンセルすることはできません。

于 2012-04-17T19:29:14.503 に答える
2

最初にメッセージをキューに入れたスレッドに注意している場合は、同じスレッドで呼び出してキャンセルできます。+ (void)cancelPreviousPerformRequestsWithTarget:(id)aTargetその前の答えには重要なビットがありませんでした:

このメソッドを使用してキューに入れられたメッセージをキャンセルすることはできません。現在のスレッドでメッセージをキャンセルするオプションが必要な場合は、 performSelector:withObject:afterDelay: または performSelector:withObject:afterDelay:inModes: メソッドを使用する必要があります。

于 2012-04-18T04:34:12.590 に答える