title: Can NSManagedObject conform to NSCoding
body: <p>I need to transfer a single object across device. Right now I am converting my NSManagedObject to a dictionary , archiving it and sending as NSData. Upon receiving I am unarchiving it. But I would really like to transfer the NSManagedObject itself by archiving and unarchiving instead of creating an intermediate data object.</p>
  
  <pre><code>@interface Test : NSManagedObject&lt;NSCoding&gt;
  @property (nonatomic, retain) NSString * title;
  @end
  
  @implementation Test
  @dynamic title;
  
  - (id)initWithCoder:(NSCoder *)coder {
      self = [super init];
      if (self) {
          self.title = [coder decodeObjectForKey:@"title"]; //&lt;CRASH
      }
      return self;
  }
  - (void)encodeWithCoder:(NSCoder *)coder {
      [coder encodeObject:self.title forKey:@"title"];
  }
  @end
  
  
  NSData *archivedObjects = [NSKeyedArchiver archivedDataWithRootObject:testObj];
  NSData *objectsData = archivedObjects;
  if ([objectsData length] &gt; 0) {
      NSArray *objects = [NSKeyedUnarchiver unarchiveObjectWithData:objectsData];
  }
  </code></pre>
  
  <p>The problem with the above code is. It crashes at <code>self.title</code> in <code>initWithCoder</code> saying unrecognized selector sent to instance. </p>
  
  <ul>
  <li>Why is <code>title</code> not being recognized as a selector.</li>
  <li>Should unarchive use a nil managed object context somehow before creating the object in <code>initWithCoder</code>?</li>
  <li>Do i need to override <code>copyWithZone</code>?</li>
  </ul>