在现有项目中保存大型类数组的最佳和最快方法是什么?领域不起作用



首先,我是一个相对业余的应用程序设计爱好者,去年自学了高级 swift/xcode,所以提前为我的代码道歉!

我开发了一个游戏,它有一个叫做playerList的"玩家"类数组。我目前通过编码器将此玩家列表数组转换为 JSON,然后保存到设备...但是,随着我的数组的增长,此练习开始花费很长时间,因此我正在寻找替代方案。我认为最好的解决方案是重写应用程序以使用CoreDate,SQLite等,但我现在正在寻找一个快速的解决方案。

我本可以使用 userDefaults,但是避开了这个大型数组,而是尝试使用 Realm 来捏造一个解决方案。

我已经尝试了以下内容,但是每当我在加载后查看我的玩家列表时,它都是空的。我在这里是否遗漏了一些明显的东西,或者有没有比使用 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.io 文档的链接。

相关内容