Junior — Middle
¿Cómo se puede implementar un mecanismo de caché de forma independiente sin recurrir a bibliotecas externas?
sobes.tech AI
Respuesta de la IA
Para implementar un mecanismo de caché simple en iOS sin bibliotecas de terceros, puedes usar un diccionario (Dictionary) para almacenar datos con claves y valores, además de agregar lógica para gestionar la vida útil de la caché.
Ejemplo en Swift:
class SimpleCache<Key: Hashable, Value> {
private var cache = [Key: (value: Value, expiry: Date?)]()
private let defaultExpiry: TimeInterval
init(defaultExpiry: TimeInterval = 300) { // 5 minutos por defecto
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()
}
}
Este clase permite guardar objetos con claves, eliminar automáticamente datos caducados y gestionar la caché manualmente.