Sobes.tech
Junior — Middle

Xarici kitabxanalardan istifadə etmədən öz-özünə önbellek mexanizmini necə həyata keçirmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

İOS-da üçüncü tərəf kitabxanələr olmadan sadə önbellek mexanizmini həyata keçirmək üçün, açar və dəyərlərlə məlumatları saxlamaq üçün lüğət (Dictionary) istifadə edə bilərsiniz və önbelleyin ömrünü idarə etmək üçün məntiq əlavə edə bilərsiniz.

Swift-də nümunə:

class SimpleCache<Key: Hashable, Value> {
    private var cache = [Key: (value: Value, expiry: Date?)]()
    private let defaultExpiry: TimeInterval

    init(defaultExpiry: TimeInterval = 300) { // standart 5 dəqiqə
        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()
    }
}

Bu sinif, açarlarla obyektləri saxlamağa, müddəti bitmiş məlumatları avtomatik silməyə və əl ilə önbelleyi idarə etməyə imkan verir.