Sobes.tech
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ą.