gpt4 book ai didi

ios - 我可以直接在对象数据模型中创建 realm.writes 吗?

转载 作者:行者123 更新时间:2023-12-01 21:30:19 26 4
gpt4 key购买 nike

我正在编写一个使用某些对象的 Realm 数据持久性的应用程序。
为了清理/改造我的代码(从 View 和 Controller 中获取 realm.write),我尝试将它们直接放在持久对象类中。
逻辑基本上是这样的:

class PersistedObject: Object {
public var data: String {
get { _saved_data }
set {
do { try realm?.write { _saved_data = newValue }
} catch { print(error) }
}
}

@objc dynamic private var _saved_data = "hello there"
}
这样,我就可以从 View Controller 访问和重写 Realm 对象属性,而不需要 realm.write s 直接在里面。反正就是这个想法。
这有时有效。其他时候,应用程序因错误而崩溃......

"Realm accessed from incorrect thread"


...这是我目前正在尝试解决的问题。
这是我的第一个 iOS 应用,也是我第一次使用 Realm。
  • 像这样组织代码是否有意义(我发现在这种方法的支持方面很少,但在使用 Realm 时的 MVC 最佳实践方面通常也很少)
  • 如果它确实有意义,我该如何解决从不正确的线程访问 Realm 的问题,同时仍然执行 realm.write s 直接在对象类中?

  • 提前致谢! :)
    西蒙

    最佳答案

  • 像这样组织代码是没有意义的。您将只能从创建它的同一线程写入
  • 要修改来自不同线程的对象,您可以使用 ThreadSafeReference例如
  • 关于ios - 我可以直接在对象数据模型中创建 realm.writes 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63074835/

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