8

CLASS METHODメインスレッドでを呼び出すにはどうすればよいですか?何かのようなもの:

[SomeClass performSelectorOnMainThread:staticMethod withObject:nil];

このクラスメソッドを呼び出すための通常のメソッドを作成するように言わないでください。それは明らかな解決策ですが、きれいではありません。

ありがとう

4

2 に答える 2

30
[SomeClass performSelectorOnMainThread:staticMethod withObject:nil waitUntilDone:NO];

はい、performSelectorOnMainThread:withObject:waitUntilDone:クラスメソッドではありません。

はい、それはのインスタンスメソッドNSObjectです。

はい、すべてのClassオブジェクトはのインスタンスですNSObject。(冗談じゃない!


次のこともできます。

dispatch_async(dispatch_get_main_queue(), ^{
  [SomeClass doClassyThingWithObject:object1 andDiddleyDoo:foo];
});
于 2011-04-12T22:44:50.583 に答える
2

どうですか:

NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:[SomeClass class] selector:@selector(SomeClass) object:nil];
[[NSOperationQueue mainQueue] addOperation:operation];
于 2012-07-17T11:26:26.697 に答える