Junior — Middle
Come implementare un meccanismo di caching in modo autonomo senza ricorrere a librerie di terze parti?
sobes.tech AI
Risposta dell'AI
Per implementare un meccanismo di cache semplice su iOS senza librerie di terze parti, puoi usare un dizionario (Dictionary) per memorizzare dati con chiavi e valori, e aggiungere logica per gestire la durata della cache.
Esempio in Swift:
class SimpleCache<Key: Hashable, Value> {
private var cache = [Key: (value: Value, expiry: Date?)]()
private let defaultExpiry: TimeInterval
init(defaultExpiry: TimeInterval = 300) { // 5 minuti di default
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()
}
}
Questa classe permette di salvare oggetti con chiavi, rimuovere automaticamente i dati scaduti e gestire manualmente la cache.