Как сохранить временные значения / объекты для сеанса в приложении iOS

Итак, у меня есть гибридное приложение для электронной коммерции для iOS, над которым я работаю, и мне нужно временно хранить несколько значений строк / массивов в течение всего процесса оформления заказа. Если пользователь покидает процесс оформления заказа, я хочу, чтобы эти значения были удалены или сброшены. В противном случае, во время процесса оформления заказа я хочу получить эти значения и использовать их.

Какой лучший способ достичь этого? Базовые данные кажутся немного более постоянными, чем я ищу, но это может быть правильный путь. Я всегда могу хранить вещи там и удалять их, когда пользователь покидает процесс оформления заказа, но мне интересно, есть ли лучший способ сделать это, в принципе.

Примечание о гибридной части:

  • Когда пользователь нажимает "оформить заказ", мы запускаем WebView, и процесс оформления заказа продолжается там.
  • У меня есть класс извлечения данных (создается с помощью моста JS), который извлекает некоторые данные, но класс выходит из памяти в основном, как только он завершил извлечение данных
  • Мне нужно получить доступ к указанным данным из JavaScript в нескольких отдельных частях, после того, как класс поиска данных вышел из памяти

Итак, учитывая это, где мне лучше всего хранить данные, извлекаемые классом извлечения данных? Пример кода, конечно, всегда приветствуется:). Спасибо!

1 ответ

Решение

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

Вот как вы сохраняете данные, используя NSUserDefaults -

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:firstName forKey:@"firstName"];
[defaults synchronize];

Вы можете использовать следующий код для извлечения данных -

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *firstName = [defaults objectForKey:@"firstName"];
Другие вопросы по тегам