我正在进行各种搜索,人们正在进行四种非常常见的搜索。我想将结果预加载到一个数组中,以便新用户不必等待这么久。如何保存结果以便下次它们已经存在?
答案 0 :(得分:1)
我建议您构建一个缓存,它可以作为NSDictionary实现。
searchTerm可以是键,结果可以是数组。
这样,当使用相同的searchTerm时,返回现有结果(如果存在),或者继续进行第一次搜索并填充缓存。
如果您希望它在应用程序启动期间保持不变,您可以根据需要将缓存存储在用户默认值中,或者像核心数据那样精心设置持久性。
说,你的ResultsCache是NSDictionary,那么逻辑可以是
if([ResultsCache objectForKey:searchTerm] == nil){
ResultsArray = [self search:SearchTerm];
[ResultsCache setObject:ResultsArray forKey:searchTerm];
}
return [ResultsCache objectForKey:searchTerm];