İçeriğe geç

NSURLCache kullanımı

İOS

Merhabalar bu yazımda İOS uygulama geliştirirken sunuculardan çekilen verilerin tekrar kullanımını sağlamak ve uygulamaya performans kazandırmak için nasıl cache işlemi yaparız. Bundan bahsedeceğim.

Diğer yazımda NSCache sınıfından bahsetmiştim. Bu sınıf aldığınız verileri teker teker içine set edip daha sonra burdan alıp geri kullanmanız şeklinde tasarlanmış bir sınıf. Ancak NSURLCache ise yedeklenecek veri için disk kapasitesi ve hafızayı kendinizin ayarlayabilmesini sağlıyor. Bu olayıda NSURLSession içinde çekilen data verilerini tümden yedekliyor. Ayrı ayrı eklemeniz gerekmeden.

Not:Tabi iş hafıza yönetimine gelince bazı sorunlar oluşması muhtemeldir. Çekilen verilerin kapladığı alan büyük sizinde tanımladığınız hafıza küçük ise uygulama kill sorunuyla karşılaşır. Bu yüzden dikkat edilmesi gereken bir durum.

Kullanımı oldukça basit. Aşağıdaki verdiğim örneği inceleyebilirsiniz.

let disc = 500 * 1024 * 1024
let memc = 500 * 1024 * 1024
        
let cache = NSURLCache(memoryCapacity: memc, diskCapacity: disc, diskPath: nil)

NSURLCache.setSharedURLCache(cache)

Yazdığınız kod’a göre viewDidLoad‘a kodları ekleyebilir veya aşağıdaki gibi AppDelegate üzerinde bulunan didFinishLaunchingWithOptions fonksiyonu içerisine yazabilirsiniz.

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {

        let disc = 500 * 1024 * 1024
        let memc = 500 * 1024 * 1024
        
        let cache = NSURLCache(memoryCapacity: memc, diskCapacity: disc, diskPath: nil)
        NSURLCache.setSharedURLCache(cache)

    return true
}

Böylelikle tüm NSURLSession ile veri çekme işleminde cache işlemi gerçekleşecektir.

Tarih:iOS

Bu yazı yorumlara kapalı.

Copyright © 2020 Kenan Atmaca