Swift缓存tableview json数据

时间:2016-11-27 01:21:26

标签: ios json swift alamofire

我想知道是否可以缓存tableView JSON数据?

在我的VC中我有这个变量:

//Categories json data
var categories: JSON! = []

然后在alamofire api调用中,我得到json数据并将其指定为:

self.categories = JSON["catData"]
self.tableView.reloadData()

但有没有办法缓存这些数据,所以我不必每次都进行API调用?

2 个答案:

答案 0 :(得分:1)

您可以创建一个单独的DataCache类,您可以在其中存储要缓存的所有数据。更喜欢将数据存储在字典中以获取特定密钥

class DataCache: NSObject {
    static let sharedInstance = DataCache()
    var cache = [String, AnyObject]()
}

现在在你的api电话中,请调用此方法

DataCache.sharedInstance.cache["TableViewNameKey"] = JSON["catData"]
self.categories = JSON["catData"] // Set this property for first time when you hit API

viewWillAppear(animated: Bool)方法

if let lCategories = DataCache.sharedInstance.cache["TableViewNameKey"] {
    self.categories = lCategories
}

答案 1 :(得分:0)

Swiftlycache可用于数据缓存。您可以直接缓存符合可编码协议的数据。非常方便如果需要,可以尝试一下 https://github.com/hlc0000/SwiftlyCache