Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Одна вещь, которую вы должны проверить, заключается в том, что ваш NotificationServiceExtension не занимает слишком много памяти (ОЗУ), поскольку он работает в отдельном процессе, и он может быть уничтожен ОС, если он занимает более нескольких Мб. Консольное приложение может быть полезно для устранения подобных проблем.
Чтобы получить Rich Notification, обязательно добавьте ключ «mutable_content» в полезную нагрузку, также нам необходимо настроить все необходимые параметры UNUserNotification для достижения этой цели.
Я должен это исправить.
Если вы считаете, что все полностью настроено, например, полезная нагрузка, которую ваш сервер передает вашему приложению (не говоря уже о комментариях Кришны, полезная нагрузка должна включать: content-available : 1
), NotificationServiceExtension
, NotificationContentExtension
и еще много чего, тогда не должно быть проблем.
Теперь, чтобы запустить метод override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void)
(например, активировать точку останова), вам нужно запустить приложение, используя цель NotificationService .
Надеюсь, это поможет.