Какие способы хранения временных данных доступны в iOS?

«Какие способы хранения временных данных доступны в iOS?» — вопрос из категории Swift Core, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Выбор зависит от объема, типа данных и времени жизни.

1. UserDefaults Для небольших простых значений (настройки, флаги).

UserDefaults.standard.set("tempValue", forKey: "myTempKey")

2. NSCache Для объектов, которые можно удалить при нехватке памяти (автоматически очищается системой).

let cache = NSCache<NSString, UIImage>()
cache.setObject(image, forKey: "tempImage")

3. Временная директория файловой системы Для больших данных (файлы, изображения). Система может очистить эту директорию.

let tempURL = FileManager.default.temporaryDirectory
    .appendingPathComponent("tempFile.txt")

4. Оперативная память (RAM) Через свойства класса, синглтоны или статические переменные. Данные живут только во время работы приложения.

Важно:

  • Для конфиденциальных временных данных используйте Keychain.
  • Всегда явно очищайте временные данные, когда они больше не нужны.