title: Cocoa-Touch – Guidelines on what thread to perform GUI updates
body: <p>I know as a general guideline you should always perform GUI updates on the main thread. But sometimes it's not that obvious. E.g where should I perform the calls:</p>
  
  <p><code>setBadgeValue:</code> of a <code>UITabBarItem</code>?</p>
  
  <p>Or</p>
  
  <p><code>[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]</code></p>
  
  <p>In the class reference it's not specified whether these methods can be run on a non-main thread.</p>