конфигурация macOS Catalyst для подключения функции делегата UISceneSession не всегда вызывается при запуске приложения - PullRequest
0 голосов
/ 30 марта 2020

Я создаю приложение MacOS Catalyst с поддержкой нескольких windows, которое реализовано с новым набором API UISceneDelegate, представленным в iOS 13.

Согласно Apple В документации при создании нового окна делегату сцены необходимо подключиться к UISceneSession, что позволяет передавать информацию в этот сеанс через его свойство userInfo. Один из способов установить userInfo перед подключением делегата сцены заключается в использовании этой функции: UISceneDelegate:

  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.
    connectingSceneSession.userInfo?["foo"] = "bar"

    return UISceneConfiguration(
      name: "Default Configuration", 
      sessionRole: connectingSceneSession.role
    )
  }

Глядя на Справочную страницу разработчика для этой функции, кажется, должен всегда вызываться при запуске приложения до того, как будет настроена сцена основного приложения. К сожалению, похоже, что с macOS Catalyst это не так, но я не могу найти какую-либо документацию или лог c, почему эта функция не всегда вызывается. В моем приложении, которое повторно использует простой пример кода для UISceneDelegate, эта функция вызывается случайным образом примерно в 50% случаев при запуске приложения. Это не очень хорошо, так как это означает, что случайно 50% времени приложения windows не настроены должным образом, так как необходимая информация не передается в свойстве userInfo UISceneSession.

Что такое точный логин c для звонков на application(_:configurationForConnecting:options:) или как добиться, чтобы он вызывался детерминистически при запуске приложения для сцены первого приложения с macOS Catalyst?

...