ios - Swift缓存tableview json数据

标签 ios json swift alamofire

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

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

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

然后稍后在 alamofire api 调用中我获取 json 数据并将其分配如下:

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

但是有什么方法可以缓存这些数据,这样我就不必每次都调用 API 了吗?

最佳答案

您可以创建一个单独的 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
}

关于ios - Swift缓存tableview json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40824892/

相关文章:

ios - 无法将类型 'int' 转换为 swift 2.0 中的预期类型 NSTimeInterval

ios - 选项的条件绑定(bind)

objective-c - 我如何在 JSONKit 中对 NSDate 字典进行 JSON 序列化

javascript - jQuery ajax后JSON格式错误

Swift3:为什么这个简单的代码块需要很长时间才能编译

ios - 以编程方式使用 Swift 将 UIViewController 与另一个 UIViewController 重叠

c# - 如何在使用 Json.net 库将新记录写入现有的 json 文件时保持 json 文件格式有效?

swift - ClosedRange 第二个参数更小,返回 nil

ios - 同时处理两个手势识别器

iPhone 相机不显示