8

問題:

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 のバグですか)

4

1 に答える 1