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

What is the best and quickest way to save a large Class Array in existing project? Realm isn't working

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

我开发了一个游戏,它有一个名为 playerList 的 'Player' Class 数组。我目前通过编码器将这个 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{[=11=].iden == 1}[0]
    
    // Assign to playerList
    playerList = realmFiltered.allThePlayers

}

我会再次阅读有关列表和声明变量的 Realm 文档。在您的对象 class 中,您是否遇到任何错误? RealmSwift 应该用@objc 动态变量声明。另外,你不应该只需要一个 let = realm。这里是link到Realm.iodocumentation.