arrays - 在现有项目中保存大型类数组的最佳和最快方法是什么?领域不工作
问题描述
首先,我是一个应用程序设计的相对业余爱好者,去年自学了高级 swift/xcode,所以提前为我的代码道歉!
我开发了一个游戏,它有一个名为 playerList 的“玩家”类数组。我目前通过编码器将此 playerList 数组转换为 JSON,然后保存到设备……但是随着我的数组的增长,这个练习开始需要很长时间,所以我正在寻找一个替代方案。我认为最好的解决方案是重写应用程序以使用 CoreDate、SQLite 等,但我现在正在寻找一个快速的解决方案。
我本可以使用 userDefaults,但是作为大数组避开了这个,而是尝试使用 Realm 来伪造一个解决方案。
我已经尝试过以下操作,但是每当我在加载后查看我的 playerList 时,它都是空的。我是否在这里遗漏了一些明显的东西,或者是否有比使用 Realm 更好的方法?
class PlayerArray: Object {
var iden: Int = 0
var allThePlayers: [Player] = playerList
}
func saveViaRealm() {
// Get the default Realm
let realm = try! Realm()
// Define player list
let realmPlayerList = PlayerArray()
realmPlayerList.allThePlayers = playerList
realmPlayerList.iden = 1
// Write to realm
try! realm.write {
realm.add(realmPlayerList)
}
}
func loadViaRealm() {
// Get the default Realm
let realm = try! Realm()
//Retrieve objects from realm
let realmOutputPlayerList = realm.objects(PlayerArray.self)
// Filter to iden required
let realmFiltered = realmOutputPlayerList.filter{$0.iden == 1}[0]
// Assign to playerList
playerList = realmFiltered.allThePlayers
}
解决方案
我将再次阅读有关列表和声明变量的 Realm 文档。在您的对象类中,您是否遇到任何错误?RealmSwift 应该使用 @objc 动态变量声明。此外,您不应该只需要一个 let = realm。这是 Realm.io文档的链接。
推荐阅读
- javascript - .css 文件未添加到仅在 js 中使用汇总构建的分发中
- html - 背景颜色高度
- command - 从文件管理器打开像“这台电脑”或“网络”这样的目录
- python - 如何根据案例数量分隔输入文件?
- c# - 方法名称预期 C# SQL Server Visual Studio 2019
- c++ - 将 1xn Eigen::Array 与 2xn Eigen::Array 相乘,1xn 数组中的每一列表现得像一个标量
- random - 计算 xorshift 的第 n 个数
- dynamic - 流口水 RHS 没有正确评估
- javascript - 获取对象的 indexOf
- excel - VBA试图遍历一列并删除整行,如果它们包含一个值