# NSHTTPCookieStorage
# Store and read the cookies from NSUserDefault
import Foundation
class CookiesSingleton {
static let instance : CookiesSingleton = CookiesSingleton()
static var enableDebug = true
func loadCookies() {
if let cookiesDetails = NSUserDefaults.standardUserDefaults().objectForKey("customeWebsite") {
for (keys,_) in cookiesDetails as! NSDictionary{
if let cookieDict = NSUserDefaults.standardUserDefaults().objectForKey(keys as! String){
if let cookie = NSHTTPCookie(properties:cookieDict as! [String:AnyObject]) {
NSHTTPCookieStorage.sharedHTTPCookieStorage().setCookie(cookie)
if(CookiesSingleton.enableDebug){
print("Each Cookies",cookieDict)
}
}
}
}
}
}
func removeCookies(){
NSURLCache.sharedURLCache().removeAllCachedResponses()
NSURLCache.sharedURLCache().diskCapacity = 0
NSURLCache.sharedURLCache().memoryCapacity = 0
let storage : NSHTTPCookieStorage = NSHTTPCookieStorage.sharedHTTPCookieStorage()
for cookie in storage.cookies! {
storage.deleteCookie(cookie as NSHTTPCookie)
}
NSUserDefaults.standardUserDefaults().setValue("", forKey: "customeWebsite")
NSUserDefaults.standardUserDefaults().synchronize()
if(CookiesSingleton.enableDebug){
print("Cookies Removed")
}
}
func saveCookies() {
let cookieArray = NSMutableArray()
let savedC = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies
let allCookiesDic:NSMutableDictionary = NSMutableDictionary()
for c : NSHTTPCookie in savedC! {
let cookieProps = NSMutableDictionary()
cookieArray.addObject(c.name)
cookieProps.setValue(c.name, forKey: NSHTTPCookieName)
cookieProps.setValue(c.value, forKey: NSHTTPCookieValue)
cookieProps.setValue(c.domain, forKey: NSHTTPCookieDomain)
cookieProps.setValue(c.path, forKey: NSHTTPCookiePath)
cookieProps.setValue(c.version, forKey: NSHTTPCookieVersion)
cookieProps.setValue(NSDate().dateByAddingTimeInterval(2629743), forKey: NSHTTPCookieExpires)
allCookiesDic.setValue(cookieProps, forKey: c.name)
}
NSUserDefaults.standardUserDefaults().setValue(allCookiesDic, forKey: "customeWebsite")
NSUserDefaults.standardUserDefaults().synchronize()
if(CookiesSingleton.enableDebug){
print("Cookies Saved")
}
}
}