Sobes.tech
Junior — Middle

Comment mettre en œuvre un mécanisme de mise en cache de manière autonome sans faire appel à des bibliothèques tierces?

sobes.tech IA

Réponse de l'IA

Pour implémenter un mécanisme de mise en cache simple sur iOS sans bibliothèques tierces, vous pouvez utiliser un dictionnaire (Dictionary) pour stocker les données avec des clés et des valeurs, ainsi qu'ajouter une logique pour gérer la durée de vie du cache.

Exemple en Swift :

class SimpleCache<Key: Hashable, Value> {
    private var cache = [Key: (value: Value, expiry: Date?)]()
    private let defaultExpiry: TimeInterval

    init(defaultExpiry: TimeInterval = 300) { // 5 minutes par défaut
        self.defaultExpiry = defaultExpiry
    }

    func set(_ value: Value, for key: Key, expiry: TimeInterval? = nil) {
        let expiryDate = expiry != nil ? Date().addingTimeInterval(expiry!) : Date().addingTimeInterval(defaultExpiry)
        cache[key] = (value, expiryDate)
    }

    func get(_ key: Key) -> Value? {
        guard let entry = cache[key] else { return nil }
        if let expiry = entry.expiry, expiry < Date() {
            cache.removeValue(forKey: key)
            return nil
        }
        return entry.value
    }

    func remove(_ key: Key) {
        cache.removeValue(forKey: key)
    }

    func clear() {
        cache.removeAll()
    }
}

Ce classe permet de stocker des objets avec des clés, de supprimer automatiquement les données expirées et de gérer manuellement le cache.