title: How to serialize a class in IOS sdk (Objective-c)?
body: <p>How to serialize the following class in objective-c so that it can be used with SBJson?</p>
  
  <p>I get "JSON serialisation not supported for Animal" error when I use this code.</p>
  
  <p>Can someone point out where I am going wrong?</p>
  
  <p>The contents of Animal.h file is as below</p>
  
  <pre><code>#import &lt;UIKit/UIKit.h&gt;
  
  @interface Animal : NSObject&lt;NSCoding&gt; {
      NSString *name;
      NSString *description;
      NSString *imageURL;
  }
  
  @property (nonatomic, retain) NSString *name;
  @property (nonatomic, retain) NSString *description;
  @property (nonatomic, retain) NSString *imageURL;
  
  -(id)initWithName:(NSString *)n description:(NSString *)d url:(NSString *)u;
  
  @end
  </code></pre>
  
  <p>The contents of Animal.m file is as below</p>
  
  <pre><code>#import "Animal.h"
  
  @implementation Animal
  @synthesize name, description, imageURL;
  
  -(id)initWithName:(NSString *)n description:(NSString *)d url:(NSString *)u {
      self.name = n;
      self.description = d;
      self.imageURL = u;
      return self;
  }
  
  - (id)initWithCoder:(NSCoder *)aDecoder
  {
      if(self = [super initWithCoder:aDecoder])
      {
          name = [[aDecoder decodeObjectForKey:@"name"] retain];
          description = [[aDecoder decodeObjectForKey:@"description"] retain];
          imageURL = [[aDecoder decodeObjectForKey:@"imageURL"] retain];
      }
      return [self initWithName:name description:description url:imageURL];
  }
  
  - (void)encodeWithCoder:(NSCoder *)encoder
  {
      [super encodeWithCoder:encoder];
      [encoder encodeObject:name forKey:@"name"];
      [encoder encodeObject:description forKey:@"description"];
      [encoder encodeObject:imageURL forKey:@"imageURL"];
  }    
  
  @end
  </code></pre>