まず、昨日、別の方法でこの質問をしました。さらに実験を重ねた後でも、「理由」についてはまだよくわかりません。何をする必要があるかは理解していますが、何が起こっているのかを明確にしたいと考えています。これがシナリオです…</p>
白紙の状態、シングル ビュー アプリケーションから始めて、単純に次の NSLog を appDelegate に追加します…</p>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSLog(@"%@",[self.window.rootViewController description]);
return YES;
}
上記は戻ります
<ViewController: 0x17e7dbf0>
ここで、「TestViewController」(UIViewController タイプ) という名前の新しいクラスを作成し、それをストーリーボードのコントローラーに割り当てると、上記の NSLog が返されます
<TestViewController: 0x146594c0>
したがって、私の質問は、「前の説明で rootViewController が「TestViewController」型であることが示されている場合、なぜ (TestViewController *) を型キャストする必要があるのですか? なぜ私はこれを行うことができません...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
TestViewController *tvc = self.window.rootViewController;
return YES;
}
それ以外の...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
TestViewController *tvc = (TestViewController*)self.window.rootViewController;
return YES;
}
ここの霧を晴らしたい。パズルのどのピースが欠けていますか?
ご協力いただきありがとうございます!