gpt4 book ai didi

iOS: append 到文件

转载 作者:行者123 更新时间:2023-12-01 17:01:31 25 4
gpt4 key购买 nike

任何人都可以推荐一种使用 NSKeyArchiver 将数据 append 到存档的内存高效方法吗?

我有一个数组,它收集对象并将它们作为内存缓存提供给应用程序。为了避免消耗越来越多的内存,我想经常将此数组存档到一个文件中,保留一个缓存文件(而不是创建单独的缓存文件)。

一种方法是将现有文件取消归档到 tempArray,而不是将现有数组中的项目添加到其中:

[tempArray addObjectsFromArray:array];

然后存档数组:

[NSKeyedArchiver archiveRootObject:tempArray toFile:file];

这种方法有其自身的目的,因为您必须在存档新数据之前将整个存档读取到内存中。

任何人都可以推荐一个更优雅的解决方案?

最佳答案

我认为这是不可能的,至少对于 NSKeyedArchiver。由于 key must be unique在每个范围层次结构中,如果不首先读取存档,就不可能保证这一点。如果您刚刚插入一个带有新存档对象的节点,并且该节点的 key 已经存在于存档的早期,那么结果将是一个损坏的存档。

显然,如果你自己编写了 NSCoder 协议(protocol)的实现,你可以让它随心所欲地工作。然而,编写 NSCoder 并非易事。

关于iOS: append 到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6498161/

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