Junior — Middle
Hoe implementeer je een cache-mechanisme zelfstandig zonder gebruik te maken van externe bibliotheken?
sobes.tech AI
Antwoord van AI
Om een eenvoudig cache-mechanisme in iOS zonder externe bibliotheken te implementeren, kun je een dictionary (Dictionary) gebruiken om gegevens op te slaan met sleutels en waarden, en logica toevoegen om de levensduur van de cache te beheren.
Voorbeeld in Swift:
class SimpleCache<Key: Hashable, Value> {
private var cache = [Key: (value: Value, expiry: Date?)]()
private let defaultExpiry: TimeInterval
init(defaultExpiry: TimeInterval = 300) { // standaard 5 minuten
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()
}
}
Deze klasse maakt het mogelijk om objecten met sleutels op te slaan, automatisch verlopen gegevens te verwijderen en de cache handmatig te beheren.