Все приложения для iOS имеют встроенный словарь данных, в котором хранятся небольшие объемы пользовательских настроек, пока приложение установлено. Эта система называется UserDefault.

Что такое пользовательские настройки по умолчанию?

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

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

UserDefaults похож на словари, он состоит из ключей и значений. Например:

var dict = [
    "Name": "Yafonia",
    "Age" : 21,
    "Language": "Indonesian"
]

Пользовательские настройки по умолчанию сохраняются в .plistfile, в данном случае в Info.plist.

Когда использовать пользовательские настройки по умолчанию

Пользовательские настройки по умолчанию лучше всего подходят для простых фрагментов данных. Если вам нужно хранить несколько объектов, вам лучше использовать настоящую базу данных. Это несколько примеров данных, которые сохраняются в UserDefaults:

  • Информация о пользователе, такая как имя, адрес электронной почты, возраст, род занятий.
  • Настройки приложения, такие как язык пользовательского интерфейса, цветовая тема приложения или шрифт.
  • Флаги (isLoggedIn, чтобы проверить, вошел ли пользователь в систему или нет, и т. Д.)

Сохранение данных в пользовательских настройках по умолчанию

Мы можем сохранить несколько типов переменных в UserDefaults:

  • Логические значения с Bool, целые числа с Int, плавающие с Float и удваивающиеся с Double
  • Строки с String, двоичные данные с Data, даты с датой, URL с типом URL
  • Типы коллекций с Array и Dictionary

Внутри класса UserDefaults могут храниться только классы NSData, NSString, NSNumber, NSDate, NSArray и NSDictionary.

Например, в этом проекте я хочу сохранить некоторые данные учетной записи, такие как адрес электронной почты, код, имя, токен и UserID. Поэтому я установил значения из loginResponse в качестве значений ключей (Email, LawyerCode, LawyerName, Token, UserID). Все значения строковые.

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

Получение данных в пользовательских настройках по умолчанию

Получить данные в пользовательских настройках по умолчанию так же просто, как сохранить их. Давайте посмотрим на пример ниже.

Для этой страницы выше мне нужно имя учетной записи (например, lawyer_staging) и адрес электронной почты (например, [email protected]), которые сохраняются в User Defaults с ключами "Email" и "LawyerName". Итак, вот что мы собираемся делать:

Чтобы отображать имя и адрес электронной почты учетной записи, вы можете просто установить текст ярлыка на данные, которые вы получаете из UserDefaults. Да, это так просто!

Сбросить данные в пользовательских настройках по умолчанию

Может быть, вам интересно, если я не использую флаги для входа в систему, что будет, если пользователь не вошел в систему?

Если пользователь вышел из системы, мы можем сбросить ключи и значения в User Default. Как мы это делаем?

Итак, когда пользователь нажимает кнопку «Keluar», мы можем сбросить все ключи и значения по умолчанию для информации для входа в систему. Когда пользователь вошел в систему, ключ и значения снова устанавливаются в User Defaults.

Язык пользовательского интерфейса по умолчанию пользователя

Как упоминалось выше, мы также можем сохранить настройки приложения, такие как язык пользовательского интерфейса, в пользовательских настройках по умолчанию. Например, информация о шрифтах сохраняется в пользовательских настройках по умолчанию.

На изображении выше вы можете видеть, что есть ключ с именем "Fonts provided by application", и именно здесь мы сохраняем шрифты.

Заключение

Мы можем легко использовать User Defaults для сохранения простых фрагментов данных, таких как информация о пользователе, настройки приложения и флаги в форме строки, логического значения, целых чисел, массивов, словарей, дат и т. Д.