У меня есть приложение, которое нуждается в доступе к фотографиям на вашем устройстве. Я проверяю статус устройства, и если они отказывают в доступе, я запускаю модальный код, который предупреждает их, что они не предоставляют необходимый доступ, а затем дает им возможность перейти к их настройкам и исправить выбор.Приложение Сбой после смены настроек фотографии
Когда это происходит, мое приложение падает со следующей ошибкой:
This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes. This will cause an exception in a future release.
Вот мой код для запуска редиректа. Любые идеи, что может быть причиной этого или предложения о том, как я должен делать это лучше?
let title = "You didn't allow us to view your photos!"
let message = "Without access, we cannot help you add photos from your device."
let alertController = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "I know!", style: UIAlertActionStyle.Cancel, handler: nil))
alertController.addAction(UIAlertAction(title: "Settings (Required)", style: UIAlertActionStyle.Default, handler: { (action: UIAlertAction) -> Void in
let settingsURL = NSURL(string: UIApplicationOpenSettingsURLString)
UIApplication.sharedApplication().openURL(settingsURL!)
}))
self.presentViewController(alertController, animated: true, completion: nil)
Этот код вызывается в методе, который я называю из следующего пятна:
PHPhotoLibrary.requestAuthorization({ (status: PHAuthorizationStatus) -> Void in
if(status == .Authorized){
self.getPhonePhotos()
}else{
self.showDeniedPhotosPopup()
}
})
Спасибо заранее.
UPDATE
Я только что понял, что-то я раньше не делал. Код срабатывает только в том случае, если я активирую переключатель «Фото» в настройках. Сама по себе навигация не приводит к сбою приложения, что приводит к изменению конфигурации настроек фотографий во время работы приложения. Чтобы проверить мою теорию, я никогда не вызывал всплывающее окно, а просто переходил к настройкам и активировал переключатель фотографий, и приложение разбилось. Таким образом, авария определенно зависит от изменения настроек фото.
Где вы используете этот код? –
Я называю это функцией «showPopup()» – Unome
И где вы называете метод showPopup? –