First of all I am writing code for iphone.
I need to be able to call a method on the main thread without using performSelectorOnMainThread
.
The reason that I don't want to use performSelectorOnMainThread
is that it causes problem when I am trying to create a mock for unit testing.
[self performSelectorOnMainThread:@Selector(doSomething) withObject:nil];
The problem is that my mock knows how to call doSomething
but it doesn't know how to call performSelectorOnMainThread
.
So Any solution?
Objective-C
dispatch_async(dispatch_get_main_queue(), ^{
[self doSomething];
});
Swift
DispatchQueue.main.async {
self.doSomething()
}
Legacy Swift
dispatch_async(dispatch_get_main_queue()) {
self.doSomething()
}