Objective C - Calling a class method on the main thread?

别等时光非礼了梦想. 提交于 2019-12-04 20:11:34

问题


How can I call a CLASS METHOD on the main thread? Something like:

[SomeClass performSelectorOnMainThread:staticMethod withObject:nil];

Please don't tell me to create a regular method to call this class method. That would be an obvious solution, but not clean.

Thanks


回答1:


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

Yes, performSelectorOnMainThread:withObject:waitUntilDone: is not a class method.

Yes, it is an instance method on NSObject.

Yes, all Class objects are instances of NSObject. (I'm not kidding!)


You could also do:

dispatch_async(dispatch_get_main_queue(), ^{
  [SomeClass doClassyThingWithObject:object1 andDiddleyDoo:foo];
});



回答2:


How about:

NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:[SomeClass class] selector:@selector(SomeClass) object:nil];
[[NSOperationQueue mainQueue] addOperation:operation];


来源:https://stackoverflow.com/questions/5642463/objective-c-calling-a-class-method-on-the-main-thread

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!