title: Save CoreData-entities in NSUserDefaults
body: <p>Imagine an CoreData entity (e.g. named <code>searchEngine</code>).<br>
  <code>NSManagedObjectContext</code> manages some "instances" of this entity.<br>
  The end-user is going to be able to select his <code>"standard searchEngine"</code> with a <code>NSPopupButton</code>.<br>
  The <code>selected object</code> of NSPopupButton should be binded to the NSUserDefaults.<br>
  The problem:  </p>
  
  <blockquote>
    <p><code>1)</code> @try{save}</p>
    
    <blockquote>
      <p><code>a)</code> If you try to save the selected "instance" directly to NSUserDefaults there comes something like this:<pre>-[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value ' (entity: searchEngine; id: 0x156f60  ; data: {
      url = "<a href="http://google.de/" rel="noreferrer">http://google.de/</a>";
      someAttribute = 1;
      name = "google";
  })' of class 'searchEngine'.</pre>  </p>
      
      <p><code>b)</code> If you try to convert the "instance" to NSData comes this:<pre>-[searchEngine encodeWithCoder:]: unrecognized selector sent to instance 0x1a25b0</pre></p>
      
      <p>So any idea how to get this entities in a plist-compatible data?</p>
    </blockquote>
    
    <p><code>2)</code> @try{registerDefaults}</p>
    
    <blockquote>
      <p>Usually the <code>registerDefaults:</code> method is implemented in <code>+ (void)initialize</code>. The problem here is that this method is called before CoreData loads the saved entities from his database. So I can't set a default to a no-existing object, right?</p>
    </blockquote>
  </blockquote>
  
  <p>I know, long questions... but: try{[me provide:details]} ;D</p>