gpt4 book ai didi

macos - "Cannot create asynchronous query while in a write transaction"异常

转载 作者:行者123 更新时间:2023-12-04 15:40:50 25 4
gpt4 key购买 nike

将我的 OS X 应用程序从 swift 2.2 迁移到 swift 3.0( Realm 版本也从 1.0.2 更改为 2.1.1)后,一些写入事务开始抛出异常:“在写入事务中无法创建异步查询”。但是在迁移之前它运行良好。

let realm = try Realm()
let allMessages = realm.objects(Message.self)
let messages = allMessages.filter("(state == 1) AND (dateSent <= %@)", dateSent)
try realm.write ({
messages.forEach { message in message.state = .seen }
})

在事务开始时,它抛出异常。为什么会发生这种情况,我该如何解决?

最佳答案

在我的代码中遇到了同样的问题,结果发现开始写入事务触发了一个集合通知,该通知又创建了一个新的 RLMResults 并向其添加了一个通知块,这意味着我正在调用 addNotificationBlock在写事务内部并崩溃。

如果可以重现,请在results.cpp - void Results::prepare_async() 中放置一个断点抛出异常的地方,看看你的代码试图做什么。

关于macos - "Cannot create asynchronous query while in a write transaction"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41613494/

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