Управление памятью в NotificationServiceExtension внутри фреймворка - PullRequest
0 голосов
/ 20 ноября 2018

Для меня это что-то новое, но я столкнулся с проблемой управления памятью в NotificationServiceExtension.Чтобы дать представление о проблеме, я кратко опишу ситуацию:

Framework в основном используется для обработки push-уведомлений.Он также использует богатые уведомления.Разработчик, чтобы использовать наш фреймворк, должен импортировать его в свой NotificationServiceExtension и использовать наш класс в качестве суперкласса.К сожалению, это когда возникает проблема с памятью.NotificationServiceExtension может обрабатывать только 12 МБ ОЗУ, поэтому даже 1 МБ памяти важны для нас.Я заметил, что когда пользователь использует наш фреймворк (импортирует его), он также загружает весь импорт, который фреймворк имеет в классах.Так, например.

У меня есть один класс в фреймворке, который отвечает за отображение SafariViewController, для этого мне нужно импортировать SafariServices.Этот импорт потребляет 2,5 МБ ОЗУ при запуске NotificationServiceExtension.Я хотел бы подчеркнуть, что расширение никогда не использует этот класс, но оно существует в рамках.Более того, даже если framework никогда не использует этот класс, но он существует только как файл, он также размещается в расширении.

Кто-нибудь сталкивался с такой проблемой?Мне интересно, как я могу запретить расширению распределять импорт всех фреймворков?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...