title: MagicalRecord with NSOperation causing persistence issues
body: <p>I'm using MagicalRecord to manage my core data. My app often receives chunks of data that needs iterated over then individually added to the store as records, and saved. I put this code into an NSOperation. It looks something like this:</p>
  
  <pre><code>class AddIncomingMessageOperation: NSOperation {
      override func main() {
          let context = NSManagedObjectContext.MR_context()
  
          self.message = Message.createMessage(
              json: self.messageJSON,
              context: context)
          if self.message != nil {
              context.MR_saveToPersistentStoreAndWait()
          }
      }
  }
  </code></pre>
  
  <p>Running this on <code>NSOperationQueue.mainQueue</code> seems to work without issue, other than holding up the UI. But my next move is to run all of these operations on their own background operation queue. Adding them to this NSOperationQueue and running them then results in some mixed up data.</p>
  
  <p>What I mean by this - my createMessage function checks for an existing Conversation object, and adds it to the conversation if it exists, or creates one if it doesn't. So it requires knowing what already exists in the store. What seems to be happening how, with them running on a background queue, is that they're creating conversations that have just been created in another operation.</p>
  
  <p>I can solve all of this by setting <code>operationQueue.maxConcurrentOperationCount = 1</code>, but that obviously slows the whole thing down.</p>