Junior — Middle
როგორ შეიძლება დამოუკიდებლად განახორციელოთ კეშირების მექანიზმი გარედან ბიბლიოთეკების გამოყენების გარეშე?
sobes.tech AI
პასუხი AI-სგან
iOS-ზე მარტივი კეშის მექანიზმის განხორციელებისთვის, შეგიძლიათ გამოიყენოთ ლექსიკონი (Dictionary) მონაცემების შენახვაზე გასაღებებით და მნიშვნელობებით, ასევე დაამატოთ ლოგიკა კეშის სიცოცხლის ხანგრძლივობის მართვისთვის.
Swift-ის მაგალითი:
class SimpleCache<Key: Hashable, Value> {
private var cache = [Key: (value: Value, expiry: Date?)]()
private let defaultExpiry: TimeInterval
init(defaultExpiry: TimeInterval = 300) { // 5 წუთი სტანდარტულად
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()
}
}
ეს კლასი საშუალებას გაძლევთ შეინახოთ ობიექტები გასაღებებით, ავტომატურად წაშალოთ ვადაგასული მონაცემები და მართოთ კეში ხელით.