didFinishLaunchingWithOptions
App DelegateのメソッドではmyString
、文字列が取得された文字列で初期化されますNSUserDefaults
( で確認されますNSLog
)。このタブベースのプロジェクトには複数のView Controllerがあり、1つを除いて、すべてがアプリデリゲート変数に問題なくアクセスしています。このビュー コントローラと他のビュー コントローラの唯一の違いは、 (後者は継承されますが) ではUIViewController
なくであるということです。UITableViewController
のUIViewController
初期化で私は入れました:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if (self.appDelegate.myString == nil)
NSLog(@"nil");
}
return self;
}
奇妙な部分:initWithNibName
メソッド内myString
(およびアプリ デリゲート内の他のすべての変数) はnil
. ただし、viewDidAppear
メソッドでこれを起動すると、そうではありませんnil
(正しい文字列が得られます)。さらにnil
、viewDidLoad
メソッドでも返されます。self.appDelegate
そのため、初期化してから文字列をチェックしようとしましviewDidLoad
たが、それでもnil
.
私はどこかで間違っていましたが、それを理解することはできません。