Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
1.7.0
-
None
Description
I just got caught upgrading from 1.5.0 to 1.7.0 by this. I extend CDVViewController, but I also use a nib file. The behaviour I was seeing was that the app would crash shortly after startup. When I used Zombie's in Instruments I could see that the CDVLocalStorage class was being allocated and then de-allocated straight away and the EXC_BAD_ACCESS error would be thrown by something trying to access it later on.
After a long time debugging I realised that the init method was not being called on the CDVViewController because I was being initialised from a nib and hence:
-(id) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
was being called. Because init was not being called the commandDelegate was not set and hence the line which allocated the CDVViewController to registerPlugins would be doing it on a nil object. If initWithNibName was implemented and just invoked init() this would solve this issue and hopefully not let others extending CDVViewController get caught out either