2017-01-02 3 views
3

Я разрабатываю приложение с помощью push-уведомления, и у меня была проблема только на устройствах iOS10.iOS10: я не могу получить currentUserNotificationSettings после получения push-уведомления

Я могу получить currentUserNotificatoinSettings.types во время первого запуска.

[UIApplication sharedApplication].currentUserNotificationSettings.types; 

Но после того, как я получил pushNotification, нить, гласивший currentUserNotificatoinSettings.types, замер без каких-либо исключений. Как-то я попытался получить исключения, используя @ try @ catch, breakpointNavigator в Xcode или Zombies в профилировщике, но в нем нет никаких исключений.

Как отладить эту проблему? или кто-нибудь знает, в чем причина этой проблемы?

+0

Получаете ли вы какое-то исключение, когда iOS декодирует полезную нагрузку в push-уведомлении? – orafaelreis

ответ

0

Вы должны получить доступ к UIApplication методам только из основной темы. Оберните свой код, который обращается к настройкам уведомлений в dispatch_async(dispatch_get_main_queue(), ….

+0

Благодарим вас за ответ. но я обращаюсь к currentUserNotificationSettings в основном потоке, и поэтому мое приложение замораживает его. Как ни странно, эта проблема также возникает в [[UIApplication sharedApplication] registerUserNotificationSettings:] после получения push-уведомления ... :( –

+0

Что вы видите в трассировке стека? Когда приложение застревает, приостановите работу в отладчике и добавьте скриншот о том, что можно увидеть там. –

+0

Вот мой: [link] (https://prnt.sc/hkrl6i). Приложение было заморожено на этой строке после получения уведомления, хотя это и есть основной поток. есть идеи? – demon9733

 Смежные вопросы

  • Нет связанных вопросов^_^