I know that when you write the initWithCoder method of a subclass of an object that implements NSCoding you have to call super initWithCoder
(instead of super init
), but do I have to call super encodeWithCoder
in the implementation of encodeWithCoder?
Asked
Active
Viewed 2,644 times
15

Dr.Kameleon
- 22,532
- 20
- 115
- 223

XaitormanX
- 891
- 1
- 11
- 22
1 Answers
24
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];
*/
}

Dr.Kameleon
- 22,532
- 20
- 115
- 223