gpt4 book ai didi

ios - Realm swift : Can't get an object from realm

转载 作者:可可西里 更新时间:2023-11-01 02:03:13 24 4
gpt4 key购买 nike

我从 api 获取一个 JSON 文件,其中包含不同 api 链接的版本,这样我就可以知道在过时的情况下要再次下载哪些信息。

我有一个 Version 类,如下所示:

class Version : Object {

dynamic var myKey = NSUUID().uuidString
dynamic var banks_v = 0
dynamic var atms_v = 0

override static func primaryKey() -> String? {
return "myKey"
}

我的想法是从 Realm 获取旧版本并从 api 下载新版本,如果版本不匹配,我应该下载我需要的 JSON 文件并更新我的 Realm 。我是这样做的:

let newVersion = Version()
for item in json {
newVersion.banks_v = item.1["banks_v"].intValue
newVersion.atms_v = item.1["atms_v"].intValue
}

// ---- NEED HELP HERE START
let oldVersion = self.realm.object(ofType: Version.self, forPrimaryKey: newVersion.myKey)
// NEED HELP HERE END ----

var rewriteVersion = false
if newVersion.banks_v != oldVersion?.banks_v {
print(newVersion.banks_v) // prints 3 (correct)
print(oldVersion?.banks_v) // prints nil (???)
self.getBanks()
rewriteVersion = true
}
if newVersion.atms_v != oldVersion?.atms_v {
self.getAtms()
rewriteVersion = true
}

if rewriteVersion {
try! self.realm.write {
self.realm.add(newVersion, update: true)
}
}

问题是我不知道如何正确地从 Realm 获取对象。我认为这部分是错误的:

forPrimaryKey: newVersion.myKey

我也试过把“myKey”放在那里,但它仍然是零。对此有什么想法吗?

提前致谢!

最佳答案

我修好了!

在我的模型类中,我像这样替换了我的 id:

dynamic var id = 0

这里:

let oldVersion = self.realm.object(ofType: Version.self, forPrimaryKey: 0)

关于ios - Realm swift : Can't get an object from realm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44965381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com