title: NSNotification vs. dispatch_get_main_queue
body: <p>In relation to <a href="https://stackoverflow.com/questions/7905192/iphone-grand-central-dispatch-main-thread">this question</a> I was wondering if there is any generally accepted logic regarding when to use NSNotification, with an observer in your main thread, vs using GCD to dispatch work from a background thread to the main thread?</p>
  
  <p>It seems that with a notification-observer setup you have to remember to tear down the observer when your view unloads but then you reliably ignore the notification, where as dispatching a job to the main thread may result in a block being executed when the view has been unloaded.</p>
  
  <p>As such, it seems to me that notifications should provide improved app stability. I'm assuming that the dispatch option provides better performance from what I've read of GCD?</p>
  
  <p><strong>UPDATE:</strong></p>
  
  <p>I'm aware that notifications and dispatch can work happily together and in some cases, should be used together.  I'm trying to find out if there are specific cases where one should/shouldn't be used.</p>
  
  <p>An example case: Why would I select the main thread to fire a notification from a dispatched block rather than just dispatching the receiving function on the main queue? (Obviously there would be some changes to the receiving function in the two cases, but the end result would seem to be the same). </p>