iOS-如何缓存文章文本派生与嵌入式API



在我的应用程序中,当用户选择要阅读的文章时,我使用Embeddy的Extract API来提取文章的内容html,当我修剪所有html标签的NSString时,我就有了文章的全文。

Embeddy给了我一定的API调用限制(每月50000次调用)。如果用户多次选择同一篇文章,我的Embeddy Extract API调用将在该文章的同一URL上进行多次。

如果用户选择同一篇文章3次,这是否意味着我将在同一个URL上浪费3次Embeddy API调用?如果是这样的话,我如何缓存文章的全文?

如果在同一个URL上浪费多个API调用是一个问题,我需要设置它,以便当用户选择第二次阅读文章时,它不会麻烦对Embedly进行API调用,因为我已经缓存了文章的全文。

我对缓存的整个概念是陌生的。我读到,当数据不太可能改变时,应该使用它。我该怎么做?NSUserDefaultsCoreData

关于缓存,另一件让我困惑的事情是:如果在我的应用程序的article/rss提要中不再向用户显示缓存的文章,那么我怎么知道该如何处理它?

如有任何帮助或建议,我们将不胜感激。谢谢

如果您希望仅在应用程序处于活动状态时进行缓存,请使用NSCache,它是一个类似NSDictionary的API,并且如果iOS中的内存压力很大,缓存会自动清除。

你可能想要一个持久的缓存,即使用户杀死了应用程序,它也能工作。然后,您能做的最好的事情就是在模型对象中实现NSCoder,为您保留结果。或者更简单的方法是使用- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag序列化一个NSDictionary

保存API调用的最佳解决方案是实际拥有一个适当的后端并将其缓存在后端(假设用户提供的链接对他们来说无论如何都不是私有的,个人数据、银行账户等)。后端应该调用Embedly并将所有请求缓存在那里。因此,即使是由相同的用户检查的相同URL也不会执行2个API调用。

最新更新