title: Core Data - accessing instances in a to many relationship vs fetch request?
body: <p>I have a Core Data model in my app with a 'Notebook' entity. 
  There are two ways I could access one or many 'Notebook' instances: </p>
  
  <ul>
  <li>By executing an NSFetchRequest with a predicate asking for an instance with a specific 'title' or 'index' attribute.</li>
  <li>By adding an 'AppData' entity in my Core Data model, forgo the 'index' attribute in 'Notebook' and instead have a to-many ordered relationship from 'AppData' to 'Notebook'. Then I would create an 'AppData' instance on the first app launch (and at every launch after that I would fetch request that one and only 'AppData' instance) and access all 'Notebook' instances through its to-many relationship. To access a notebook by title I would use indexOfObjectPassingTest or fast obj-c enumeration, to access by index I would use objectAtIndex.</li>
  </ul>
  
  <p>It is much easier to query an 'AppData' instance for 'Notebook' instances and their attributes than setting up a fetch request to the managed object context each time.</p>
  
  <p>However, which method would be faster? would one method use more memory or stay in memory more time? I read that objects in to-many relationships are loaded lazily, but when would an object in that set be loaded? when would it be unloaded?</p>