gpt4 book ai didi

ios - `indexOf` 抛出 "Object type does not match RLMResults"异常

转载 作者:行者123 更新时间:2023-11-30 12:20:42 26 4
gpt4 key购买 nike

我正在跟踪生产中调用 indexOf 时发生的崩溃在Results上抛出Object type <my object type> does not match RLMResults type <my object type> 。我发现this issue在他们的 github 上,地址为 this PR早在 2015 年,这意味着我已经解决了这个问题。从那以后有没有人经历过这种情况,也许是因为不同的原因?

我的情况与上面链接的问题发布者的情况类似 - 实例传递到 indexOf那时可能不受 Realm 管理。

编辑:我的代码看起来像

extension MyObject {
func refresh() {
let realm = try! Realm()
realm.refresh()
let results = realm.objects(MyObject.self)
.filter( /* some filtering... */)
.sorted( /* some sorting... */)

if let ownIndex = results.index(of: self) {
/* do something */
}
}
}

添加新对象后,会在 Realm 中的每个对象上(从其他地方)调用该方法:

let realm = try! Realm()
realm.refresh()
try! realm.write {
// iterate over some data to populate new realm objects from
for objectData in data {
let object = MyObject()
object.populateFields(from: objectData) // Just sets some fields on the object
realm.add(object, update: true)
}

for object in realm.objects(MyObject.self).filter(/* Some filter... */) {
object.refresh()
}
}

崩溃发生在 index(of:) .

最佳答案

我最好的猜测是,在 refresh() 之后,您的对象可能会被删除,这意味着您正在尝试在扩展程序中获取无效对象的索引。

之前检查一下 self.isInvalidated 可能是个好主意,否则如果您有复制案例,请在 https://github.com/realm/realm-cocoa/issues 创建问题.

关于ios - `indexOf` 抛出 "Object type does not match RLMResults"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44821422/

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