title: When to use the save: method of NSManagedObjectContext
body: <p>The question is quite simple: when should I use the <code>save:(NSError **)error</code> method of NSManagedObjectContext? From what I understand the only thing it does it save changed data to the persistent store. The Xcode template-generated application delegate calls the save: method on <code>applicationWillTerminate</code>, is that sufficient?</p>
  
  <p>Details about my code:</p>
  
  <ul>
  <li>Multi-threaded (doing operations in the background, thus using multiple <code>NSManagedObjectContext</code>'s)</li>
  <li>I'm using a single <code>NSPersistentStoreCoordinator</code></li>
  <li>Data changed on background threads is merged using <code>mergeChangesFromContextDidSaveNotification:</code></li>
  <li>If you need to know more, please do ask!</li>
  </ul>
  
  <p>I couldn't find a guideline on when to call it, so I decided to ask you all. Thanks in advance for your replies!</p>