Очищает ли симулятор iOS среду, написанную NSCoder, при каждом перезапуске?

При сохранении и загрузке с помощью NSCoder в XCode я не могу сохранить состояние приложения и загрузить его обратно.

Что я пытаюсь сделать, так это сохранить состояние приложения, а затем перезагружать его при каждом перезапуске. По сути, продолжаю с того места, на котором остановился.

Симулятор ios очищает среду каждый раз?

Если да, то есть ли способ обойти это поведение?


person kfmfe04    schedule 12.10.2014    source источник


Ответы (1)


Симулятор ios очищает среду каждый раз?

Нет. У вас не должно возникнуть проблем с сохранением состояния и его повторной загрузкой, если вы делаете это правильно. Например, у людей часто возникают проблемы, потому что они пытаются записывать файлы внутри пакета приложения, но пакет приложения всегда доступен только для чтения. Сохраните свои данные в другом месте, например в папке «Документы» приложения, в системе по умолчанию, в каталоге Cache и т. д.

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

person Caleb    schedule 12.10.2014
comment
Я использую NSKeyedArchiver для сохранения AppState. Должен ли я вместо этого писать прямо в файл? - person kfmfe04; 12.10.2014
comment
NSKeyedArchiver сохраняет данные только в экземпляре NSData. Если вы хотите, чтобы данные сохранялись, вам, очевидно, нужно куда-то записать эти данные в файл. - person Caleb; 12.10.2014
comment
ty - я рассмотрю перечисленные вами варианты записи в файл - person kfmfe04; 12.10.2014