For example, in GKScore
's reportScoreWithCompletionHandler
(documentation), suppose you call
[score reportScoreWithCompletionHandler:^(NSError *error) {
// do some stuff that may be thread-unsafe
}];
In which thread will the completion handler be called: the main thread, the same thread as reportScoreWithCompletionHandler
was called, or a different thread (presumably the thread that the actual score reporting is done)?
In other words, does the work done in the completion handler need to be thread-safe (as in, it doesn't matter what thread it's done in)?
In practical terms it doesn't matter.
If you need your completion to run in the main thread, just dispatch it to the main thread:
[score reportScoreWithCompletionHandler:^(NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
// do your stuff here
});
}];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With