Swift缓存tableview json数据
Posted
技术标签:
【中文标题】Swift缓存tableview json数据【英文标题】:Swift cache tableview json data 【发布时间】:2016-11-27 01:21:25 【问题描述】:不知道是否可以缓存tableView JSON数据?
在我的 VC 中,我有这个变量:
//Categories json data
var categories: JSON! = []
然后在 alamofire api 调用中,我获取 json 数据并将其分配如下:
self.categories = JSON["catData"]
self.tableView.reloadData()
但是有什么办法可以缓存这些数据,这样我就不必每次都调用 API 了吗?
【问题讨论】:
【参考方案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
【讨论】:
有什么方法可以将我的缓存同步到服务器吗?例如,如果我的缓存数据缺少服务器添加的新值 为此您需要集成一些特殊服务,例如实时数据库服务。你可以试试 google firebase for ios @user2636197 为了保存数据,如果您只需要在应用程序实例中,请使用上面给出的Swiftlycache 可用于数据缓存。可以直接缓存符合编码协议的数据。这很方便。需要的话可以试试 https://github.com/hlc0000/SwiftlyCache
【讨论】:
以上是关于Swift缓存tableview json数据的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中使用远程 JSON 数据填充 tableView
Swift 4.2 中带有 JSON 数据的 Tableview