如果我向 API 端点执行一个简单的请求来获取一些数据。这些数据是否缓存在磁盘上的任何位置,或者每次都重新获取?
如果每次都获取,这会很糟糕吗?我应该缓存它并创建某种方法来检查它是否在服务器上的某个地方更新了!
每次您从服务器请求时都会检索它。
如果需要,您可以使用 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