SuperAPI AI 工具集

swiftui-whats-new-27

编程与开发

查看项目

更新于 10-15 15:35

技能介绍

用途

该技能用于了解 SwiftUI 在 2027 年 OS 版本(iOS 27、macOS 27、watchOS 27、tvOS 27、visionOS 27)中引入的新 API、行为变化与弃用情况。资料说明其内容由 Apple 编写并发布,具有权威性,并声明当与模型既有认知冲突时以该指引为准,同时要求不要虚构参考文档中未记录的 API 或参数。

主要能力

技能围绕一组参考文件组织,覆盖以下主题:

  • 可重排容器(references/reorderable.md):通过 ForEach 上的 .reorderable() 与 .reorderContainer(for:) 为任意容器(List、栈、网格、自定义布局)实现拖拽重排,涵盖 ReorderDifference 的 apply、分区与多集合、拖放集成(dragContainer/dropDestination),以及通过 per-child 的 dropDestination(for:isEnabled:) 重载把一项拖放到另一项上以合并条目。适用于 iOS/macOS/watchOS/visionOS 27;tvOS 不可用。
  • 异步图片(references/async-image.md):AsyncImage 默认应用标准 HTTP 缓存;新增 AsyncImage(request:) 初始化器接收 URLRequest 以设置单次请求的缓存策略,asyncImageURLSession(_:) 可提供自定义 URLSession。适用于 iOS/macOS/watchOS/tvOS/visionOS 27。
  • 工具栏(references/toolbar.md):面向受限空间的新工具栏 API,包括控制项目保持可见还是溢出(visibilityPriority)、始终溢出的项目(ToolbarOverflowMenu)、固定尾部项目(.topBarPinnedTrailing)、滚动时最小化工具栏(toolbarMinimizeBehavior)、移除内容边距(contentMarginsRemoved)、状态栏可见性(ToolbarPlacement.statusBar),以及动态内容(ForEach/EmptyView 现在可用于工具栏构建器)。各 API 可用性不同,详见参考文件中的表格。
  • item 绑定(references/item-binding.md):confirmationDialog 与 alert 新增接收 item: Binding<T?> 的重载(即 sheet(item:) 的形态),当绑定非 nil 时呈现,并把解包后的值传给 actions 与 message 闭包。适用于 iOS/macOS/watchOS/tvOS/visionOS 27。
  • 滑动操作(references/swipe-actions.md):在任意可滚动容器(带 LazyVStack、LazyVGrid 或栈的 ScrollView)的行上使用滑动操作(滑动删除及其他行操作),不再局限于 List;通过 swipeActionsContainer() 标记容器,并在每行保留 swipeActions(edge:allowsFullSwipe:content:),另有新的 onPresentationChanged 重载。适用于 iOS/macOS/watchOS/visionOS 27;tvOS 不可用。
  • 文档型应用(references/document-based-apps.md):面向文档型应用(iOS/macOS/visionOS 27)的新 ReadableDocument / WritableDocument API,包括只读查看器(单独使用 ReadableDocument 配合 DocumentGroup(viewer:makeReadableDocument:))、直接文件 URL 访问、通过 DocumentReader/DocumentWriter 进行后台读写、快照、FileWrapperDocument{Reader,Writer} 便捷封装、增量包写入、Subprogress 报告、DocumentGroup 设置与撤销。当部署目标为 iOS 27 / macOS 27 / visionOS 27 或更高时,新代码不应再推荐 ReferenceFileDocument 或 FileDocument。
  • @State 宏(references/state-macro.md):@State 从属性包装器迁移为宏。此前可编译的 @State 视图现在可能报错,例如“variable used before being initialized”(init 在其他存储属性之前给 @State 赋值)、“invalid redeclaration of synthesized property”(在 @State 上组合属性包装器)、“extraneous argument label”(扩展中的成员逐一初始化委托)。资料明确指出正确修复不是重排赋值,需查阅该参考文件。
  • 内容构建器(references/content-builder.md):在 @ContentBuilder 下统一结果构建器。在依赖既有结果构建器结构的地方存在源码不兼容(overlay/background 中 ShapeStyle 重载歧义、模块遮蔽 SwiftUI 类型时的类型引用歧义),以及 Swift Charts 中深度分支内容出现的类型检查性能回退。
  • 弃用(references/deprecations.md):SDK 27.0 中硬弃用的 API,例如 visionOS 上的 statusBarHidden(无效果,应移除调用)。软弃用 API 由 swiftui-specialist 技能覆盖。

使用方式

资料要求:在编写或修改使用任何新增或变更的 SDK 27 SwiftUI API 的代码前,先阅读相关的 references/*.md 文件;因为若干 API 存在名称相近但闭包签名或行为不同的重载,凭训练记忆选择错误重载会导致编译失败或运行时行为错误。对于使用 @State 的 SwiftUI 视图在 SDK 更新后出现的任何编译错误,应先查阅 references/state-macro.md 再作答。当用户询问“what's new in SwiftUI in [SDK name] 27”或类似问题时,依据参考文件进行总结。

适用场景

适用于在 2027 年 OS 版本上开发或维护 SwiftUI 代码时,遇到构建错误、弃用警告,或需要确认某模式是否对应已知 API 变更的场景;也适用于回答关于 SDK 27 中 SwiftUI 新特性的问题。

限制

资料未提供该技能的安装命令、收费方式、价格、平台支持范围或效果数据,这些信息暂未提供。可用性因 API 而异,部分 API 在 tvOS 上不可用,具体以各参考文件中的可用性说明为准。