私はデリゲートを使用してアプリケーションのデータを保存しています。私は最初のビューコントローラとしてnavigationviewcontrollerを持つtabviewcontrollerを持っています。私がデリゲートを使用してdelegate = [[UIApplication sharedApplication] delegate]; initで動作しません:viewDidLoadのみ
delegate = [[UIApplication sharedApplication] delegate];
を使用すると、デリゲートはinitメソッドの外部でnullになります。
しかし、viewDidLoad内の場所がうまくいきます。これがなぜ起こるのか?
UPDATE
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
delegate = [[UIApplication sharedApplication] delegate];
}
return self;
}
どの初期化方法を上書きしていますか?呼び出されるのは、コントローラの作成方法によって異なります。 – Caleb
- (id)initWithNibName:(NSString *)nibNameOrNilバンドル:(NSBundle *)nibBundleOrNil また、デリゲートはinitメソッド内に設定されていますが、 (例:viewDidLoad)、デリゲートはnull – James
ですが、initメソッドの内部で動作しますか?それはnullではありませんか? – akashivskyy