如果在一个类里实现了其父类的某个成员变量,则首先需要先实现该父类的对象,如:
@interface Option : OAuthViewController
...
@end
而OAuthViewController类的声明如下:
@interface OAuthViewController : UIViewController {
OAuth *oAuth;
}
...
@end
该Option类继承了OAuthViewController类,然后在Option类的某个方法中实现了oAuth的实例。
然而,此时并没有对OAuthViewController初始化,因此程序也无法对oAuth初始化。此时对oAuth所做的一切操作都会导致程序异常
解决方法:在Option类里手动初始化OAuthViewController类。
通过调用OAuthViewController类的
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;
方法,执行了初始化后程序运行一切正常。
PS:一开始我在Option类里添加了init方法,在该方法中初始化OAuthViewController,然而在Option本身的初始化过程中并不会执行init方法,因此此方法不可用。所以我将OAuthViewController的初始化放入Option的ViewDidLoad中。