用途:在 iOS 应用中使用 Realm 数据库时,提供线程模型、Swift 并发集成、性能与内存约束的实践指引,用于排查线程安全错误、async/await 崩溃、同步与写入性能问题以及框架集成。
主要能力与核心规则:Realm 对象受线程限制,只能在创建 Realm 的线程访问;async/await 会切换线程,因此不要在属性中存储 Realm 实例,而应在每个 actor 方法中使用全新的 try Realm()。主题包括 actor + 全新 Realm 模式、@MainActor 存储 Realm 模式、后台线程必须包裹 autoreleasepool;批量写入需合并到单个 realm.write 中;大数据量同步按块处理并汇报进度;跨线程只读可用 freeze() 冻结对象;Realm 模型不要直接实现 Codable,改用 DTO 转换(List 不遵循 Codable)。
限制与注意事项:组件与扩展(如 Widget)有约 15MB 内存限制,不应在其中使用 Realm,建议改用 UserDefaults 或 JSON;冻结对象为只读快照,不会随写入更新;迁移会阻塞主线程,需用生产数据备份测试,并可用 asyncOpen() 缓解。资料还给出与 CoreData、SwiftData 在并发、读写性能、内存、跨平台与 iCloud 同步方面的对比,以及适用与不适用 Realm 的场景。具体安装命令、版本与收费信息暂未提供。