Is it necessary to call [super encodeWithCoder] when subclassing a object that implements NSCoding? Is it necessary to call [super encodeWithCoder] when subclassing a object that implements NSCoding? objective-c objective-c

Is it necessary to call [super encodeWithCoder] when subclassing a object that implements NSCoding?


If you inherit from a class that supports Encoding, it is generally adviseable to use [super encodeWithCoder:] in your encodeWithCoder: method, as much as [super initWithCoder:] is to be used in the initWithCoder: method.

Documentation : NSCoding Protocol Reference

Reference : http://www.cocoadev.com/index.pl?NSCoder

if the class inherits from a Class that conforms to (NSObject does not conform) then you should include the [encodeWithCoder:] method.

//  <NSCoding> protocol methods-(void)encodeWithCoder:(NSCoder*)coder{    [super encodeWithCoder:coder];    /*    [coder encodeObject: theNSStringInstanceVariable];    [coder encodeObject: theNSDictionaryInstanceVariable];    [coder encodeValueOfObjCType:@encode(BOOL) at:&theBooleanInstanceVariable];    [coder encodeValueOfObjCType:@encode(float) at:&theFloatInstanceVariable];    */}