title: Best practice for core data function
body: <p>What's the best design to use in an iPhone app that uses core data when you have several view controllers that make similar core data calls?</p>
  
  <p>Currently I have an app which has several view controllers which all perform similar functions like adding objects to an entity, deleting an entity, etc.  I figure there are a few ways to handle this:</p>
  
  <ol>
  <li><p>Each view controller has it's own addItem:blah class.  Downside is this results in some copy-pasta between the classes</p></li>
  <li><p>Create a superclass which has the core data methods, and inherit from that class.  Override where necessary</p></li>
  <li><p>Create a category so all instances of view controllers have those methods without needing to subclass</p></li>
  <li><p>Create a data manager singleton which can be called.  Might be useful to have this so I can queue requests and do data management outside of each view controller.  Downside is this feels like a bad idea in general</p></li>
  </ol>