Middle
Veri önbelleklemesini sadece kendi araçlarınızı kullanarak, üçüncü taraf kütüphaneler kullanmadan nasıl gerçekleştirebilirsiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
HTTP/HTTPS istekleri için URLCache kullanma, dosya önbellekleme için FileManager ve küçük, basit veriler için UserDefaults kullanma.
// URLCache ile örnek
let configuration = URLSessionConfiguration.default
configuration.requestCachePolicy = .reloadIgnoringLocalCacheData // Örnek politika
let session = URLSession(configuration: configuration)
let url = URL(string: "https://example.com/api/data")!
let task = session.dataTask(with: url) { data, response, error in
// Veri işleme
}
task.resume()
// FileManager ile örnek (verileri dosyaya önbellekleme)
let fileManager = FileManager.default
let cacheDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask).first!
let fileURL = cacheDirectory.appendingPathComponent("cached_data.txt")
// Veri yazma
do {
let dataToCache = "Some cached data".data(using: .utf8)!
try dataToCache.write(to: fileURL)
} catch {
print("Dosyaya yazarken hata: \(error)")
}
// Veri okuma
do {
let cachedData = try Data(contentsOf: fileURL)
let cachedString = String(data: cachedData, encoding: .utf8)
print("Önbellekteki veriler: \(cachedString ?? "nil")")
} catch {
print("Dosya okuma hatası: \(error)")
}
// UserDefaults ile örnek (basit verilerin önbelleğe alınması)
let defaults = UserDefaults.standard
// Veri kaydetme
defaults.set("cached_value", forKey: "myCachedKey")
// Veri okuma
let cachedValue = defaults.string(forKey: "myCachedKey")
print("UserDefaults'tan önbelleğe alınan değer: \(cachedValue ?? "nil")")