如果我向api端点执行了一个简单的请求来获取某些数据。这些数据是在任何地方缓存在磁盘上还是每次都重新获取它?
如果每次抓取都这么糟糕?我应该缓存它并创建一些检查它是否已在服务器上更新的方法!
答案 0 :(得分:4)
每次从服务器请求时都会检索它。
如果需要,可以使用NSCache缓存项目,它的工作方式类似于NSDictionary。
// Init it and iVar it somewhere
self.cache = [NSCache new];
id object = [self.cache objectForKey:"http://www.someURL.com/with/a/path"]
if object == nil {
//perform your fetch here
//after the fetch is preformed...
[self.cache setObject: dataObject forKey:"http://www.someURL.com/with/a/path"];
//perform what you need to with said object
} else {
//perform operation with cached object
}
使用NSCache的原因是,如果遇到内存不足,它会自行清除。
如果您正在使用Swift,那么这里有一个不错的库: https://github.com/Haneke/HanekeSwift