将多维数组保存到存储

Posted

技术标签:

【中文标题】将多维数组保存到存储【英文标题】:Saving MultiDimensional Arrays to Storage 【发布时间】:2016-09-14 04:28:43 【问题描述】:

我正在用 Swift 构建一个谜题,我想将一个多维数组存储到存储中。我对此有很多选择,包括 NSDefaults、Core、Plists 等等。我知道,如果我在 NSDefaults 中执行此操作,我实际上是在每次进行更改时将多维数组带回并保存它。这可能是磁盘密集型的。

多维数组的大小为:[30x20]。关于如何最好地存储它的任何建议。

我尝试查看了许多指南,虽然 NSDefaults 看起来是最简单的,但我担心性能(并且我想学习如何以正确的方式做到这一点)。

非常感谢任何指导。我能够让 Core 工作,但没有这么复杂。

谢谢。

【问题讨论】:

【参考方案1】:

如上图所示声明属性并在属性模型中将自定义类设置为Array<Array<Any>>

在 CoreDataProperties 类中声明属性,例如:@NSManaged public var routes: Array<Array<Any>> //

用法:

同时使用初始化属性,例如:

<your_rroperty_name> = obj["routes"] as? [[String]] ?? [[]]

【讨论】:

【参考方案2】:

我实际上尝试了多种方式,包括核心数据、plist、sqlite,最终最终使用了 Realm。它比其他人容易得多,而且速度非常快。如果您像我一样陷入困境,我强烈推荐它:

https://realm.io/docs/swift/latest/

由于易于使用和简单的视图,我实际上正在删除我的所有 plist 以支持 Realm。

【讨论】:

以上是关于将多维数组保存到存储的主要内容,如果未能解决你的问题,请参考以下文章

如何从 C# 中的嵌套循环写入多维数组?

数据库中数据写入多维数组,如何实现?

多维数组指向多维数组

将多维数组添加到其他多维数组的子数组中

如何将 128 维面部编码存储在 numpy 多维数组中?

在循环内将数组添加到多维数组