I've been trying to implement caching using AFNetworking so my cached JSON will be loaded offline. i tried my best in different ways i couldn't make the cache work at all. i don't know what am i missing here..
Here is the code in my AppDelegate
:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
var cache :NSURLCache = NSURLCache(memoryCapacity: 4*1024*1024, diskCapacity: 32*1024*1024, diskPath: "app_cache")
NSURLCache.setSharedURLCache(cache)
return true
}
Also this is the code I'm using to get the JSON :
let manager = AFHTTPRequestOperationManager()
manager.requestSerializer = AFJSONRequestSerializer()
manager.requestSerializer.cachePolicy = NSURLRequestCachePolicy.ReturnCacheDataElseLoad
manager.GET("http://api.androidhive.info/json/movies.json", parameters: nil, success: { (operation, responseObject) -> Void in
if let j: AnyObject = responseObject, let mediaObjects = j.valueForKeyPath("image") as? NSArray {
self.imageArray = mediaObjects as! [String]
}
self.myCollectionView.reloadData()
println("success")
}, failure: { (operation, error) -> Void in
})
So in the failure block I'm suppose to load the cached data but i don't know what am i missing ? Please provide working code,caching is a big topic and i couldn't find a fully working sample!