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.