Сохраняются ли NSUserDefaults при обновлении приложения в Appstore?

StackOverflow https://stackoverflow.com/questions/1638766

  •  08-07-2019
  •  | 
  •  

Вопрос

Так ли это?Сбрасываются ли NSUserDefaults, когда вы отправляете обновление приложения в App Store, или они сбрасываются?

Мое приложение аварийно завершает работу при обновлении, но не аварийно завершает работу при полной загрузке, поэтому я пытаюсь определить, что может отличаться в обновленном сеансе от только что загруженного сеанса.

Ура, Ник.

Это было полезно?

Решение

Обычно они не сбрасываются, пока пользователь не удалит приложение.Для базовых данных NSUserDefaults — лучший способ сохранить такие данные, как настройки, даты, строки и т. д.Если вы хотите сохранить изображения и файлы, лучше всего подойдет файловая система.

Другие советы

Я считаю, что ответ – ДА, он сохранится.Это также полностью описано в главе «Каталог приложений» Руководства по программированию ОС Apple iPhone.

  1. Прямой ответ на опубликованный вопрос:ДА.
  2. Твоя проблема:Ваше приложение аварийно завершает работу из-за проблем с логикой.Предположим, вы сохраняете объект в настройках по умолчанию, и приложение проверяет его значение при запуске (или где-то еще).В обновлении вы можете изменить способ его проверки или использования, например.вы ожидаете значение, но объект равен нулю, или наоборот.Это может вызвать SIGABRT или EXC_BAD_ACCESS.

Если у вас была модель CoreData, и вы что-то изменили в своей модели и обновили, не управляя миграцией, это, вероятно, причина, по которой ваше приложение выходит из строя при обновлении...

У меня есть аналогичный опыт.Наше приложение хранит номер версии в Settings.Bundle/Root.Plist.Это отображается через приложение «Настройки iPhone».Мы обнаруживаем, что при установке номер версии загружается из пакета приложения, поэтому номер версии правильный.Однако при обновлении номер версии не меняется.Создается впечатление, что пользователь использует предыдущую версию приложения.Никакой логики, связанной с номером версии, у нас нет, он просто для отображения (его могут использовать сотрудники контакт-центра при диагностике неисправностей).

По нашему опыту, NSUserDefaults не очищается, когда пользователь обновляет наше приложение, но экран настроек также не обновляется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top