如何在主线程上调用CLASS METHOD
?
类似的东西:
[SomeClass performSelectorOnMainThread:staticMethod withObject:nil];
请不要告诉我创建一个常规方法来调用此类方法。这将是一个明显的解决方案,但不是很干净。
由于
答案 0 :(得分:29)
[SomeClass performSelectorOnMainThread:staticMethod withObject:nil waitUntilDone:NO];
是的,performSelectorOnMainThread:withObject:waitUntilDone:
不是类方法。
是的,它是NSObject
上的实例方法。
是的,所有Class对象都是NSObject
的实例。 (I'm not kidding!)
你也可以这样做:
dispatch_async(dispatch_get_main_queue(), ^{
[SomeClass doClassyThingWithObject:object1 andDiddleyDoo:foo];
});
答案 1 :(得分:2)
怎么样:
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:[SomeClass class] selector:@selector(SomeClass) object:nil];
[[NSOperationQueue mainQueue] addOperation:operation];