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.