I have the following method for my class which intends to load a nib file and instantiate the object:
- (id)initWithCoder:(NSCoder*)aDecoder { if(self = [super initWithCoder:aDecoder]) { // Do something } return self; }
How does one instantiate an object of this class? What is this NSCoder
? How can I create it?
MyClass *class = [[MyClass alloc] initWithCoder:aCoder];
You also need to define the following method as follows:
- (void)encodeWithCoder:(NSCoder *)enCoder { [super encodeWithCoder:enCoder]; [enCoder encodeObject:instanceVariable forKey:INSTANCEVARIABLE_KEY]; // Similarly for the other instance variables. .... }
And in the initWithCoder method initialize as follows:
- (id)initWithCoder:(NSCoder *)aDecoder { if(self = [super initWithCoder:aDecoder]) { self.instanceVariable = [aDecoder decodeObjectForKey:INSTANCEVARIABLE_KEY]; // similarly for other instance variables .... } return self; }
You can initialize the object standard way i.e
CustomObject *customObject = [[CustomObject alloc] init];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With