iOS-приложение, есть ли способ подписаться на событие, когда приложение обновляется через AppStore?
Мне нужно очистить некоторые свойства, хранящиеся в приложении NSUserDefaults для iOS, когда оно обновляется до новой версии.
Есть ли способ получить уведомление, когда такое обновление приложения произойдет или произошло?
Также верно ли мое предположение, что при обновлении приложения NSUserDefaults не очищаются автоматически?
2 ответа
UserDefaults не изменяются при обновлении приложения. По сути, вы спрашиваете, как реализовать управление версиями для ваших данных. Самый простой способ сделать это - использовать значение версии в вашем приложении и добавить его в свои UserDefaults.
Пример потока при запуске приложения:
- Вы определили версию "1.0" в своем коде и ключ "Версия"
- При запуске приложения осуществляется доступ к UserDefaults и проверяется ключ "Версия", чтобы узнать, существует ли для него значение.
- Если значение существует и оно равно версии, определенной выше, это означает, что приложение уже было запущено с этой версией ранее, поэтому не нужно выполнять никаких действий.
- Если значение существует, но оно не равно (это произойдет в будущих версиях) версии, определенной выше, или значение не существует вообще, вы можете выполнить очистку, так как вы впервые запускаете эту версию.
- Наконец, обновите значение в UserDefaults до текущей версии.
По моему опыту, NSUserDefaults сохраняются в будущих версиях, если пользователь не переустановит приложение с нуля.
Вы можете достичь своей цели, отслеживая номер версии, которую вы можете обновить в App Delegate, как только приложение откроется.
Исходя из этого, вы можете проверить и вызвать функцию со своей логикой, чтобы сбросить нужные свойства.