在现有项目中保存大型 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.
首先,我是一个应用程序设计的相对业余爱好者,去年自学了高级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.