You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 5.9与Xcode15中@CaseDetection及@Observable宏的获取问题

@CaseDetection与@Observable宏的使用解决方案

@Observable的使用

@Observable是Xcode15正式版(对应Swift 5.9)内置的SwiftUI宏,直接使用即可,注意两个前提:

  • 确保项目的Swift版本设置为5.9及以上
  • 在代码顶部导入import SwiftUI,之后就能在类或结构体上标记@Observable启用观察功能

@CaseDetection的实现(非内置宏)

WWDC2023演示中的@CaseDetection是自定义宏示例,并非Swift原生内置功能,需要自行实现。结合你找到的关键步骤,完整流程如下:

  1. 创建编译器插件
    必须先注册宏,让Xcode能识别到它:
@main 
struct CaseDetectionPlugin: CompilerPlugin { 
    let providingMacros: [Macro.Type] = [CaseDetectionMacro.self,]
}
  1. 实现宏的核心逻辑
    需要编写CaseDetectionMacro的具体代码,用来为枚举自动生成判断case的布尔属性。另外建议将生成的属性声明为public,示例生成的代码结构如下:
public var is(raw: uppercased): Bool {
   if case .(raw: original) = self { true } else { false }
} 
  1. 项目依赖配置
    自定义宏需要放在独立的Swift Package模块中,之后让主项目依赖这个Package,才能在业务代码里正常使用@CaseDetection标记枚举。

内容的提问来源于stack exchange,提问作者Phantom59

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:20:09