SwiftData|在后台线程使用 ModelActor

了解如何通过 ModelActor 在后台线程安全的操作 SwiftData 数据。

SwiftData|在后台线程使用 ModelActor

ModelActor 默认在主线程执行

创建 ModelActor 实例的位置,决定了 ModelActor 执行所在的线程

  • 如果在主线程上创建 ModelActor 实例,你会得到一个使用主线程进行隔离的 actor
  • 但如果在后台初始化同样的类型,你会得到在后台线程隔离的 actor
https://www.massicotte.org/model-actor

在 Filmo 项目中,我创建了一个 BookmarkActor,并使用 logger 检查执行所在的线程:

默认情况下,如果没有通过 Task.detached 显式指定在后台线程中创建 actor 实例,则确实会在主线程中执行: