Sectioned Queries:Query 原生支持分组,无需视图层手动处理
deep_candidateThomas(SwiftData 团队)开场:2027 年新特性。Query 新增 sectionBy 参数自动按属性分组,sections 属性返回分组列表。SampleTrips app 演示按目的地分组行程。
正在接入 Apple HLS 视频源…
Thomas(SwiftData 团队)开场:2027 年新特性。Query 新增 sectionBy 参数自动按属性分组,sections 属性返回分组列表。SampleTrips app 演示按目的地分组行程。
MKMapItem.Identifier 无法加 @Model。新 .codable 修饰符委托该类型自行编解码。限制:对 predicate/sort 不透明,结构变化不触发迁移。适用于不拥有源码的外部类型。
@Query 只能在 SwiftUI 中使用。ResultsObserver 提供相同能力,可在 SceneKit、ObservableObject 等任意上下文中使用。withContinuousObservation 返回 token 控制生命周期。
每次 save 时记录 transaction,包含变更内容与来源 token。HistoryObserver 的 eventCounter 在新 transaction 时递增。可过滤 model type 和 author。支撑 server sync 和 app extension 场景。
Sectioned queries(UI 层)→ Codable(模型层)→ ResultsObserver(业务层)→ HistoryObserver(同步层)。SwiftData 不再只是持久化框架,而是数据变更响应系统。每层解决不同问题。
Query 新增 sectionBy 参数自动按属性分组,替代视图层手动分组。sections 属性返回分组列表可用于 ForEach。 这是该 session 的核心论点,支撑整个叙事链在该主题上的完整性。
适用于不拥有源码的外部框架类型。限制:对 predicate/sort 不透明,结构变化不触发迁移。 这是该 session 的核心论点,支撑整个叙事链在该主题上的完整性。
@Query 只能在 SwiftUI 中使用。ResultsObserver 在 SceneKit、ObservableObject 等任意上下文中提供相同能力。
eventCounter 递增触发观察,可过滤 model type 和 author。适合构建与外部服务器的同步或跨 extension 数据共享。
Sectioned queries 处理 UI 分组,ResultsObserver 处理非 UI 观察,HistoryObserver 处理增量同步。SwiftData 2027 的方向是让数据变化贯穿 UI、业务和同步层。
Sectioned queries、ResultsObserver、HistoryObserver 共同方向:SwiftData 不再是纯 ORM,而是数据变更响应系统。AI 生成的数据需要这四层才能进入生产。(本 session 在全局地图中的位置:platform_apps 数据层主干——与 269(UI)、272(互操作)构成 Platform Apps 三条主线。)