gpt4 book ai didi

ios - 我不应该在核心数据中存储什么?

转载 作者:行者123 更新时间:2023-11-29 10:59:01 25 4
gpt4 key购买 nike

所以这更像是一个应用程序设计问题。但我认为它可以被“回答”,而不仅仅是讨论。 :)

我正在为我们正在构建的应用程序使用 RestKit。显然,将内容放入直接对象或核心数据对象中变得非常容易。

在我处理的具体实例中,我们有评论,很像对 Facebook 帖子的评论。

现在,将这些评论存储在核心数据中的最大好处是,借助 NSFRC,我可以非常轻松地对它们进行排序,并处理自动更新/插入到时间线的正确位置。但也有一些症结所在。

例如,对于无限加载,我现在必须管理在新的最新评论和旧的存储评论之间加载评论。 (也许是我第一次抓取 25 个,但从那时起已经有 100 个新评论。所以我首先检索最新的 25 个,然后必须在新评论和旧评论之间有一个自动称重传感器,直到我遇到那些评论,然后之后必须分页。

除此之外,您还可能在核心数据中存储了数千条评论。也许在很长一段时间内这不是什么大问题,但最终您可能想要开始使用 GCD 任务清理旧评论。

那么关于在核心数据中存储什么以及将什么作为临时对象保留的主要思想是什么。 (也许将它们存储在缓存中,例如 NSCache 或新的 Tumblr 缓存 https://github.com/tumblr/TMCache)。

编辑

好吧,也许我应该在这里澄清一点。我得到了核心数据的目的......在应用程序重新启动时持久存在并拥有一个具有关系的对象图。我充分利用它。我想我在这里想知道的是灰色区域,为了不必总是等待网络调用和离线可用性,我希望事情能够持续存在。

但是就像 facebook 上的故事和评论一样,总会有源源不断的新评论涌入,您不一定关心旧帖子上的 300 条评论。有人可能会多次回来查看他们“帖子”上的评论,或者有人可能只是随便浏览“帖子”和评论,再也不会回来查看它们。

因此,我只是想考虑针对类似这种情况的策略,其中您可能有很多实体(评论)来自服务。有时人们会想要多次查看它们(他们自己的“帖子”),有时他们只是浏览一下。当试图看看其他人是如何做到这一点时,似乎有些东西全部都放入了核心数据中,有些(比如 Facebook)似乎在数据库中存储了 25-50 个最近的数据,超出这个范围的都是短暂的(他们可能正在清除旧的故事并定期发表评论。)

最佳答案

Core Data 并非设计用作“哑数据存储”,而是对象持久性。所以,任何你想在你的应用程序使用之间保留的东西都应该进入核心数据。

如果您正确使用 Core Data,它也会为您处理所有缓存。

编辑:

任何根据您的喜好经常更改或您不想永久存储的东西,NSCache 可能是更好的选择。如果您不认为您的用户明天会再次查看它,请将这些部分从您的坚持中删除。 (恕我直言)

关于ios - 我不应该在核心数据中存储什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16876896/

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