TGViewer
Мобильный трудоголик Мобильный трудоголик @hardworkerit · 1.65K subscribers
Post #148 1.11K
🔢 Кэширование в Swift: как сделать приложение быстрее.

Кэширование — мощный инструмент, который почему-то часто упускают из виду. А ведь это идеальное решение для временного хранения данных без лишних запросов к сети или базе.


🤔 Что такое NSCache?

NSCache — встроенный в iOS механизм кэширования, который автоматически освобождает память при нехватке ресурсов. Но есть нюанс: он работает только с классами, наследующими NSObject.

Решение: обертка вокруг NSCache, которая позволяет использовать любые типы данных, включая структуры.


final class Cache<Key: Hashable, Value> {
private let wrapped = NSCache<WrappedKey, Entry>()
// реализация подписки, вставки и удаления
}



⚠️ Жизненный цикл данных.

Чтобы избежать устаревших данных, добавим автоматическую инвалидацию по времени:


struct Entry {
let value: Value
let expirationDate: Date // Удаляем данные после истечения срока
}



💽 Сохранение на диск.

Для оффлайн-доступа к данным расширяем кэш поддержкой Codable и сохраняем в файлы:


extension Cache: Codable where Key: Codable, Value: Codable {
func saveToDisk(name: String) throws {
let data = try JSONEncoder().encode(self)
try data.write(to: cachesDirectory.appendingPathComponent(name))
}
}



✅ Когда это полезно:

🔹 Повторное использование данных (например загруженных товаров в интернет магазине).
🔹 Оффлайн-режим: доступ к последним данным после перезапуска.
🔹 Оптимизация производительности: меньше запросов к серверу.


💡 Вывод:

Кэширование — не просто «сохранить и забыть». Это баланс между скоростью, актуальностью данных и управлением памятью.


➡️ Подписаться на канал
Мобильный трудоголик
  • ❤ 22
  • 👍 1
  • 🔥 1
More from @hardworkerit
  1. Oct 9, 2026👨‍💻 Умение адаптироваться - важный навык айтишника, который часто недооценивают. В ИТ не…
  2. Oct 8, 2026🈸 Apple обяжет разработчиков поддерживать iPhone Duo. Apple опубликовала требования к при…
  3. Oct 6, 2026🔢 Swift 6.4: новая диагностика ретейн циклов. В Swift 6.4 появилась новая диагностика, ко…
  4. Oct 4, 2026🔢 SwiftUI: определение угла раскрытия iPhone Duo. В iOS 27.1 появился модификатор .onHing…
  5. Oct 2, 2026👣 Архитекторы, тестировщики и кодеры. Создаем мультиагентную команду Разработка с ИИ-аген…
  6. Oct 1, 2026🔢 Работа с Picture-in-Picture в iOS. Picture-in-Picture - системная функция iOS, которая…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →