今天在UIViewController的- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil方法中初始化了我要用到的数组、字符串等变量。然后发现程序运行起来没有达到预期的效果。查看得知自己初始化ViewController方法时调用了init方法而不是- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil方法。
因此,以后要注意,自己重写了初始化方法之后,如果在这个初始化方法中操作了程序中要用到的变量,在使用这个类的时候就必须调用这个重写了的初始化方法。特别是在使用单实例的时候,必须调用自己重写的sharedXXX方法才会返回这个单实例,调用其他初始化方法会重写创建一个新的对象,那么就无法起到单实例的效果了。
因此,以后要注意,自己重写了初始化方法之后,如果在这个初始化方法中操作了程序中要用到的变量,在使用这个类的时候就必须调用这个重写了的初始化方法。特别是在使用单实例的时候,必须调用自己重写的sharedXXX方法才会返回这个单实例,调用其他初始化方法会重写创建一个新的对象,那么就无法起到单实例的效果了。