2017-01-02 3 views
3

Ich entwickle App mit Push-Benachrichtigung, und ich hatte ein Problem nur auf iOS10-Geräten.iOS10: Ich kann currentUserNotificationSettings nicht erhalten, nachdem ich die Push-Benachrichtigung erhalten habe

Ich kann currentUserNotificatoinSettings.types beim ersten Start erhalten.

[UIApplication sharedApplication].currentUserNotificationSettings.types; 

Aber nachdem ich pushNotification bekam, der Faden, die currentUserNotificatoinSettings.types lesen, fror ohne Ausnahmen. Irgendwie habe ich versucht, Ausnahmen zu erhalten, indem ich @ try @ catch, breakpointNavigator in Xcode oder Zombies auf Profiler verwende, aber es werden keine Ausnahmen angezeigt.

Wie sollte ich dieses Problem debuggen? oder weiß jemand, was die Ursache für dieses Problem ist?

+0

Erhalten Sie eine Ausnahme, wenn iOS die Nutzdaten in Push-Benachrichtigungen dekodiert? – orafaelreis

Antwort

0

Sie sollten UIApplication Methoden nur von auf Hauptgewinde zugreifen. Wickeln Sie Ihren Code, der auf die Benachrichtigungseinstellungen zugreift, in eine dispatch_async(dispatch_get_main_queue(), ….

+0

Vielen Dank für Ihre Antwort. aber ich greife auf currentUserNotificationSettings auf Hauptgewinde und so, meine Anwendung einfrieren damit. Seltsamerweise passiert dieses Problem auch bei der Methode [[UIApplication sharedApplication] registerUserNotificationSettings:] nach dem Abrufen der Push-Benachrichtigung ... :( –

+0

Was sehen Sie im Stack-Trace? Wenn die App blockiert ist, pausieren Sie den Debugger und fügen Sie einen Screenshot hinzu von dem, was dort zu sehen ist. –

+0

Hier ist meins: [link] (https://prnt.sc/hkrl6i). Die App wurde in dieser Zeile nach Erhalt einer Benachrichtigung eingefroren, obwohl es ein Haupt-Thread ist sicher haben Sie irgendwelche Ideen? – demon9733

Verwandte Themen