gpt4 book ai didi

iphone - 为 iPhone 缓存通用对象列表的选项?

转载 作者:行者123 更新时间:2023-11-29 13:50:19 26 4
gpt4 key购买 nike

我有一个连接到 API 并一次检索大量小对象的应用程序。这些对象作为 NSDictionary、NSArray 等的层次结构从 json-framework 返回。它们是基本数据类型,大多数 api 调用的主要结构是项目列表(可能有数百个项目)。

我将在 UITableView 中显示数据,但我不希望所有数据都在内存中(因为我可能会吃光所有数据)。我也不想再次访问对象的 API,因为它们可以缓存几个小时而不会出现任何问题。

我已经想到了几个解决方案,但我很想听听其他选择。我考虑过以各种方式使用 Core Data,但我想避免必须为从 API 返回的每种类型的实体创建和维护实体。像这样使用 Core Data 似乎有点矫枉过正。我可以使用核心数据来存储归档对象,但我担心归档/解归档开销。

我真的想要一个可以缓存对象列表的通用存储,然后能够从列表中检索任意项目。

我关心的因素:

  • 易于维护。如果 api 更改或我们添加其他对象,我不希望代码中有很多地方需要更改。存储通用对象(符合 NSCoding)是理想的。

  • 性能。缓存和检索都将在用户与应用程序交互时发生(在后台),但我不想消耗太多资源来实现应用感觉很慢。

是否有为此目的而存在的现有库?我缺少哪些选项?也许让我相信,为每种数据类型创建核心数据实体实际上是对象缓存的好主意。

最佳答案

如果您还没有尝试过 facebook/Three20 库,他们已经实现了一个 disc/memory cache并将其用作网络模块中的基础层之一。我在我的应用程序中使用了 three20 但我从未直接使用过这个缓存层,所以我不确定它的性能。不过,记住这一点是件好事。

此外,Enormego 团队还实现了一个独立的照片查看器。在这个照片查看器中有一个 nicely-working disc-memory cache .我不确定它是否与three20缓存有关。但我确实相信它可以缓存通用对象,而不仅仅是图像。您可以自己尝试一下。

关于iphone - 为 iPhone 缓存通用对象列表的选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5048194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com