juf*_*ina 6 macos realm swift3
在将我的OS X应用程序从swift 2.2迁移到swift 3.0(领域版本也从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 }
})
Run Code Online (Sandbox Code Playgroud)
在事务开始时它会抛出异常.为什么会发生这种情况,我该如何解决?
看来你正在变异messages,forEach这可能是崩溃的原因。
尝试这样的事情:
let realm = try Realm()
let allMessages = realm.objects(Message.self)
let results = allMessages.filter("(state == 1) AND (dateSent <= %@)", dateSent)
let messages = Array(results)
try realm.write ({
messages.forEach { message in message.state = .seen }
})
Run Code Online (Sandbox Code Playgroud)
也许这不是最好的解决方案,因为您会将所有消息加载到内存中,但应该可以工作。
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |