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.