gpt4 book ai didi

Swift:使用 Realm 过滤记录

转载 作者:行者123 更新时间:2023-11-28 12:28:23 24 4
gpt4 key购买 nike

我是 Realm 的新手,我需要帮助。首先,我的 Realm 对象如下所示:

class RegistrationInf: Object {
dynamic var RValCode = ""
dynamic var RIsConfirmed = false
}

我有一个 PHP 脚本,它返回包含验证码的 JSON 数据,我使用以下函数将其插入到 Realm 数据库中:

func RegisterToDatabase(Valcode:String, IsConfirmed:Bool = false){

let loRegistrationInf = RegistrationInf()

let realm = try! Realm()

if IsConfirmed {
let loReg = realm.objects(RegistrationInf.self).filter("RValCode == \(Valcode)").first
try! realm.write {
loReg?.RIsConfirmed = IsConfirmed
}
self.loIsConfirmed = IsConfirmed
}
else {
loRegistrationInf.RValCode = Valcode
loRegistrationInf.RIsConfirmed = IsConfirmed

try! realm.write {
realm.add(loRegistrationInf)
}
}
}

然后当用户收到包含代码的短信时,他们输入并确认,再次调用上面的函数,只是这次第二个参数的值为真。

当代码走到下面一行时:

let loReg = realm.objects(RegistrationInf.self).filter("RValCode == \(Valcode)").first

我得到一个异常告诉我:

Terminating app due to uncaught exception 'Invalid value', reason: 'Property 'RValCode' is not a link in object of type 'RegistrationInf''

我在这里错过了什么?

最佳答案

你的过滤器应该是 .filter("RValCode == %@", Valcode)。由于字符串未被引用(使用 NSPredicate 格式语法时不需要),因此在此处使用 Swift 的字符串插值会产生无效查询。

关于Swift:使用 Realm 过滤记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42772523/

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