gpt4 book ai didi

iphone - 我应该保存在 plist 还是 Core Data 中?

转载 作者:行者123 更新时间:2023-12-03 18:17:28 24 4
gpt4 key购买 nike

我想知道是否应该将应用程序中的数据保存到 plist 或使用 Core Data..

我的应用程序现在基本上只是保存来自时间线和其他用户的推文。不到几百 kB(在我的测试中大约 200 kb)。使用核心数据有什么优势?

最佳答案

只是一些对您的应用设计有所帮助的建议。

首先需要强调的是,CoreData 与 plist 并没有真正的可比性。我的意思是,CoreData 就像数据存储上的数据模型抽象层,允许您管理不同数据实体之间的关系和获取规则。在 CoreData 层后面,您的数据存储可以基于 plist(仅限 osx)、sqlite 数据库或二进制对象。

这也很重要,因为可以帮助您了解 CoreData 的范围:如果您需要保持不同数据实体之间的逻辑关系或对同一数据执行多个查询或序列化/反序列化大数据结构,CoreData 提供最好和最快的解决方案来实现这一目标。如果您只需要存储只需要显示的简单项目列表,则 plist 文件的弹跳应该足够了。

另一个重要的决策点是需要存储的数据类型:根据 Apple 的说法,plist 文件针对字符串、数字、日期和一些二进制数据进行了优化。 Apple 关于 plist 的说法是这样的:

Note that property lists should be used for data that consists primarily of strings and numbers. They are very inefficient when used with large blocks of binary data.
Many applications require a mechanism for storing information that will be needed at a later time. For situations where you need to store small amounts of persistent data — say less than a few hundred kilobytes — property lists offer a uniform and convenient means of organizing, storing, and accessing the data.

这意味着,如果您需要存储“重”内容或复杂对象并管理它们(例如通过它们进行搜索),plist 解析器的缓存系统可能效率低下(主要在 iOS 上)。

在我看来,您从时间线存储大约 200k 条线性推文(大约 1000 条推文?)的想法对于基于 plist 的解决方案来说效果很好。还要考虑到 plist 解析器使用小数据结构进行强烈加速,那么您将获得更好的性能和较低的内存使用量(主要是在启动期间),因为您不需要初始化 CoreData 或数据存储周围的任何其他“代码包装器”。只是简单地即时使用 NSDictionaryNSArray 等。

最后但并非最不重要的一点是,plist 实现足够便宜,让您有可能在下一步中转向 CoreData。

我的意思是,有时如果您需要捕捉一些苍蝇,则无需使用水箱:-)

希望这有帮助。再见!

关于iphone - 我应该保存在 plist 还是 Core Data 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4964408/

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