Почему оператор "ARFaceTrackingConfiguration.isSupported" находится в AppDelegate, а не в ViewController? - PullRequest
0 голосов
/ 29 апреля 2019

Почему инженеры ARKit помещают оператор ARFaceTrackingConfiguration.isSupported в файл AppDelegate.swift, но не в файл ViewController.swift?

class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?

    func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {

        if !ARFaceTrackingConfiguration.isSupported {               
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            window?.rootViewController = storyboard.instantiateViewController(withIdentifier: "unsupportedDeviceMessage")
        }
        return true
    }
}

Я думаю, файл ViewController.swift является наиболееподходящее место для этого условного высказывания.

Я прав?

1 Ответ

0 голосов
/ 02 мая 2019

После исследования я решил, что application(_:willFinishLaunchingWithOptions:) метод экземпляра лучше подходит для создания раскадровки (и затем представления ViewController) внутри оператора if, проверяющего ARFaceTrackingConfiguration.

Вот что Apple говорит об этом методе:

Используйте этот метод экземпляра, чтобы инициализировать ваше приложение и подготовить его к запуску. Этот метод вызывается после запуска вашего приложения и загрузки его основного раскадровки или nib-файла, но до восстановления состояния вашего приложения. Во время вызова этого метода ваше приложение находится в неактивном состоянии.

...