Как и где сохранить объект UIImage в iOS?

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

Ответ

Способ хранения зависит от размера, частоты доступа и необходимости сохранения после удаления приложения.

1. Файловая система (рекомендуется для большинства случаев)

  • Директория Documents: Для пользовательских изображений, которые должны сохраняться после удаления приложения (участвуют в iCloud/iTunes Backup).
  • Директория Caches: Для кэшированных изображений, которые можно перегенерировать/загрузить заново (система может очистить при нехватке места).
    let fileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
    .appendingPathComponent("image.png")
    if let pngData = image.pngData() {
    try? pngData.write(to: fileURL)
    }

2. Core Data / Realm Если изображение — часть модели данных. Храните как Binary Data с включенной опцией "Allows External Storage", чтобы большие данные автоматически сохранялись в файлы.

3. UserDefaults (НЕ рекомендуется) Подходит только для очень маленьких изображений (например, иконки в base64), так как все данные загружаются в память при запуске приложения.

4. Keychain Только для конфиденциальных изображений (редкий случай).