Junior — Middle
Kaip savarankiškai įgyvendinti talpyklos mechanizmą be išorinių bibliotekų?
sobes.tech AI
Atsakymas iš AI
Norint įgyvendinti paprastą talpyklos mechanizmą iOS be trečiųjų šalių bibliotekų, galite naudoti žodyną (Dictionary) duomenų saugojimui su raktais ir reikšmėmis, taip pat pridėti logiką talpyklos gyvavimo laikui valdyti.
Pavyzdys Swift kalba:
class SimpleCache<Key: Hashable, Value> {
private var cache = [Key: (value: Value, expiry: Date?)]()
private let defaultExpiry: TimeInterval
init(defaultExpiry: TimeInterval = 300) { // numatytasis 5 minutės
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()
}
}
Ši klasė leidžia saugoti objektus su raktai, automatiškai šalinti pasibaigusius duomenis ir rankiniu būdu valdyti talpyklą.