Это зависит от того, насколько постоянным вы хотите быть.
Если вы сохраните этот словарь в глобальной переменной, он будет сохранен в той части оперативной памяти устройства, которая зарезервирована для работающего приложения.Когда приложение перестает работать (убивается операционной системой или удаляется пользователем) или если ваше устройство перезагружается - эта память теряется.
Если вы сохраните этот словарь на флеш-накопителе устройства (и в его файловой системе)- он будет жить после перезапусков / перезагрузок.
Обычно люди объединяют подходы: когда вы получаете данные из сети, вы сохраняете их в глобальной переменной и сохраняете в файловой системе.После перезапуска приложения вы пытаетесь загрузить данные из файловой системы.Причина, по которой ФС не используется постоянно, заключается в том, что он намного медленнее, чем доступ к ОЗУ.Я предполагаю, что я описываю кэширование .
Обратите внимание, что вы можете реализовать ручное кэширование (используя простые данные или текстовые файлы, NSUserDefaults
, Core Data или другие библиотеки), но также вы можетеиспользовать встроенный HTTP-кеш - NSURLCache
.Если вы создаете сеанс с NSURLSession.sharedSession
, он будет использовать значение по умолчанию NSURLCache
и соблюдать политику кэширования, продиктованную серверной стороной.
Для большего контроля и полной автономной поддержки, я бы порекомендовал реализовать кэширование вручную.См. Это о чтении и записи списков и writeToFile: атомно: .