我目前正在编写一个iOS应用程序,它以JSON格式从API下载信息,然后在应用程序中显示。
此应用程序的一个主要功能是它可以脱机工作以及在线工作,因此应该有缓存版本和在线版本。
通过互联网阅读后,我没有找到任何这种方法的例子。
我发现的唯一一件事就是HanekeSwift,但文档似乎不完整,没有办法清除缓存,我甚至不确定这是否是基于内存的缓存或基于文件系统的缓存。
由于有很多方法可以做到这一点,核心数据,文件系统框架等。我不确定哪一个最适合,理论上要打破我的思维过程所有我需要做的是:
我觉得核心数据会有点过分,我觉得文件系统方式已经过时了,因为大多数文件系统可可豆荚/库似乎都不兼容当前的swift版本(2.3)
任何人都可以分享一下通用标准的做法是什么,或者哪种选择最适合我的使用目的和原因。
最诚挚的问候
答案 0 :(得分:-1)
SwiftifyJSON生成支持归档的对象。 试试这个
class HSCache: NSObject {
static var defaults: NSUserDefaults = NSUserDefaults()
class func cacheThis(key: String, object : AnyObject) {
defaults.setObject(NSKeyedArchiver.archivedDataWithRootObject(object), forKey: key)
defaults.synchronize()
}
class func getFromCache(key: String, type : AnyClass) -> AnyClass? {
if defaults.objectForKey(key) != nil {
return NSKeyedUnarchiver.unarchiveObjectWithData(defaults.objectForKey(key) as! NSData) as? AnyClass
}
return nil
}
class func deleteFromCache(key: String) {
defaults.removeObjectForKey(key)
defaults.synchronize()
}
}