問題:
AppDelegate メソッドに関して予期しない動作を見つけましたapplication(_:configurationForConnecting:options:)
。
ドキュメントには次のように記載されています。
UIKit は、新しいシーンを作成する直前にこのメソッドを呼び出します。
アプリが起動されるたびに、これが当てはまると思います。
このメソッドは、アプリを初めて起動したときに実際に呼び出されますが、その後のすべての起動では呼び出されません。
再現:
再現する非常に単純なテスト ケースがあります。
- Xcode 12 > 新規プロジェクトの作成 > iOS > アプリ (UIKit/ストーリーボード)
AppDelegate
次のよう に、メソッドにデバッグ ステートメントを追加します。// from Apple's sample project: func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { // Called when a new scene session is being created. // Use this method to select a configuration to create the new scene with. print("I was called!"). // <--- debugging statement return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) }
- アプリを実行 > 「呼ばれました!」コンソールに出力されます
- アプリを再度実行します > 何も印刷されません。
質問:
application(_:configurationForConnecting:options:)
2 回目の起動時に呼び出されないのはなぜですか?
(期待される動作ですか? はいの場合はなぜですか / Apple のバグですか)