iOS上api响应缓存的最佳策略

时间:2015-08-20 22:51:38

标签: ios api http-caching

如果我向api端点执行了一个简单的请求来获取某些数据。这些数据是在任何地方缓存在磁盘上还是每次都重新获取它?

如果每次抓取都这么糟糕?我应该缓存它并创建一些检查它是否已在服务器上更新的方法!

1 个答案:

答案 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