Sobes.tech
Junior — Middle

Harici kütüphaneler kullanmadan kendi başına bir önbellekleme mekanizması nasıl uygulanabilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

İOS'ta üçüncü taraf kütüphaneler olmadan basit bir önbellek mekanizması uygulamak için, anahtarlar ve değerlerle veri depolamak için bir sözlük (Dictionary) kullanabilir ve önbelleğin yaşam süresini yönetmek için mantık ekleyebilirsiniz.

Swift'te örnek:

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

    init(defaultExpiry: TimeInterval = 300) { // varsayılan 5 dakika
        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 sınıf, anahtarlarla nesneleri saklamanıza, süresi dolmuş verileri otomatik olarak silmenize ve önbelleği manuel olarak yönetmenize olanak tanır.