Junior — Middle
Tashqi kutubxonalarsiz mustaqil ravishda kesh mexanizmini qanday amalga oshirish mumkin?
sobes.tech AI
AIdan javob
iOSda uchinchi tomon kutubxonalarisiz oddiy kesh mexanizmini amalga oshirish uchun, kalitlar va qiymatlar bilan ma'lumotlarni saqlash uchun lug'at (Dictionary) dan foydalanishingiz mumkin, shuningdek, keshning yashash vaqtini boshqarish uchun logika qo'shishingiz mumkin.
Swiftda misol:
class SimpleCache<Key: Hashable, Value> {
private var cache = [Key: (value: Value, expiry: Date?)]()
private let defaultExpiry: TimeInterval
init(defaultExpiry: TimeInterval = 300) { // 5 daqiqa standart
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()
}
}
Ushbu sinf, kalitlar bilan obyektlarni saqlash, muddati o'tgan ma'lumotlarni avtomatik ravishda o'chirish va qo'lda keshni boshqarish imkonini beradi.