title: How to get managedObjectContext for viewController other than getting it from appDelegate?
body: <p>Recently I came to know that "You really shouldn't be calling down to the AppDelegate to get the managed object context". Apple also has put this recommendation into their documentation <a href="https://developer.apple.com/library/mac/documentation/DataManagement/Conceptual/CoreDataSnippets/Articles/stack.html#//apple_ref/doc/uid/TP40008283-SW1" rel="noreferrer">here</a>.
  It goes like this :</p>
  
  <blockquote>
    <p>A view controller typically shouldn’t retrieve the context from a global object such as the application delegate—this makes the application architecture rigid. Neither should a view controller create a context for its own use (unless it’s a nested context). This may mean that operations performed using the controller’s context aren’t registered with other contexts, so different view controllers will have different perspectives on the data.</p>
  </blockquote>
  
  <p>Further they have mentioned some other ways to get context. So far I am unable to figure out what they are trying to say there. Can anybody please put some light on the issue. Any code snippet supporting statements would be most welcome.</p>
  
  <p><strong>EDIT</strong><br/></p>
  
  <blockquote>
    <p>Sometimes, though, it’s easier or more appropriate to retrieve the
    context from somewhere other than application or the document, or the
    view controller. Several objects you might use in a Core Data-based
    application keep a reference to a managed object context. A managed
    object itself has a reference to its own context, as do the various
    controller objects that support Core Data such as array and object
    controllers (NSArrayController and NSObjectController in OS X, and
    NSFetchedResultsController in iOS).</p>
    
    <p>Retrieving the context from one of these objects has the advantage
    that if you re-architect your application, for example to make use of
    multiple contexts, your code is likely to remain valid. For example,
    if you have a managed object, and you want to create a new managed
    object that will be related to it, you can ask original object for its
    managed object context and create the new object using that. This will
    ensure that the new object you create is in the same context as the
    original.</p>
  </blockquote>
  
  <p>What exactly it is? Am sure its not similar with the Highly voted answer below. Can somebody help me to understand this portion of Apple documents?</p>