有一个问题,我想查询 Swift 中领域的所有数据

问题描述 投票:0回答:1

这是一个问题,我想快速读取realm中的所有数据,并抛出错误EXC_BAD_ACCESS(code=1,address=0xfffffffffffffff8) 但我可以插入数据,请帮我看看哪里出了问题

    static func customJudge(content: String, mobile: String) -> String {
        do {
            let realm = try! Realm()
            let ruleInfo = RuleModel()
            ruleInfo.content = "123"
            ruleInfo.actionType = "提醒"
            ruleInfo.clickType = "abc"
            ruleInfo.id = Int(Date().timeIntervalSince1970)
            try realm.write {
                realm.add(ruleInfo)
            }
            let resultList =  realm.objects(RuleModel.self)
            if !resultList.isEmpty {
                print("is not null")
            } else {
                print("is null")
            }
        } catch {
            print("exception is :\(error)")
        }
        return ""
    }

let resultList =realm.objects(RuleModel.self) 这行出现错误:EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff8)

我要查询所有数据

ios swift realm
1个回答
0
投票

错误 EXC_BAD_ACCESS 通常在存在内存访问问题时发生。 就您而言,问题可能与您管理 Realm 实例的方式有关。

确保用于获取数据的 Realm 实例仍然有效并且尚未被释放,这一点至关重要。

您可以修改代码版本以确保正确的领域管理:

 static func customJudge(content: String, mobile: String) -> String {
    do {
        let realm = try Realm()
        let ruleInfo = RuleModel()
        ruleInfo.content = "123"
        ruleInfo.actionType = "提醒"
        ruleInfo.clickType = "abc"
        ruleInfo.id = Int(Date().timeIntervalSince1970)
        
        try realm.write {
            realm.add(ruleInfo)
        }
        
        // Make sure you have a valid Realm instance here
        let anotherRealm = try Realm()
        let resultList = anotherRealm.objects(RuleModel.self)
        
        if !resultList.isEmpty {
            print("is not null")
        } else {
            print("is null")
        }
    } catch {
        print("exception is: \(error)")
    }
    return ""
}

在这段代码中,我创建了一个单独的 Realm 实例(anotherRealm),用于在写入数据库后获取数据。这应该有助于避免与访问可能无效的 Realm 实例相关的任何问题。

确保您还检查您的数据模型 (RuleModel) 并确保它与您的数据库架构匹配。数据模型的问题有时也会导致意外崩溃。

© www.soinside.com 2019 - 2024. All rights reserved.