我正在重新加载我的iOS应用中的每个对象,每个应用启动并将它们下载到一个数组(几乎约1000个对象)。
我真的希望提高效率并且已经意识到99%的时间已经下载的条目不会改变,所以我真的宁愿只下载updatedAt
日期比任何updatedAt
更新的对象。 1}}日期存储在我的本地数组中(我正在缓存)。
是否有whereKey
方法可用于仅调用比特定日期更新的对象或检查上次缓存何时发生的方法?第二,如果有更新的版本,我是否可以替换旧选项,因为我将这些添加到列表中?
答案 0 :(得分:0)
下载资源时,您需要关注资源的Response header
内容信息。如果Response header
中的请求成功可能包含特殊密钥:Last-Modified
。
为每次请求成功保存。在下次再次请求时,您不需要下载所有资源。就在您收到回复时,从响应标题中获取Last-Modified
。与旧的Last-Modified
信息进行比较,如果它相同,那么您的资源确实是最新的。
答案 1 :(得分:0)
createdAt字段存在于所有记录中。跟踪您上次查询的时间。
// first time, initialize it to find all rows
self.lastQuery = [NSDate distantPast];
// get rows created after the last query
[query whereKey:@"createdAt" greaterThan:self.lastQuery];
// once the query is done, remember the date, save it however you save stuff in your app
self.lastQuery = [NSDate date];