Swift:使用 Realm 过滤记录

标签 swift realm

我是 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/

相关文章:

kotlin - 打包程序:无法找到类型io.realm.RealmList的读/写生成器

android - 在 react native 中导入 Realm 时未知的执行上下文

android - 在 UI 线程中使用单例作为 Realm

ios - Swift:如果条件不满足,则阻止执行segue

ios - 应用程序暂停时主导航栏消失

ios - 如何使用相同的模型对象在 View Controller 之间传递模型数据

ios - Realm 创建和人口序列

ios - Realm :更新对象而不更新列表

ios - SwiftUI:在呈现工作表时防止 View 刷新

swift - 在 Scenekit 中计算到达角度