Ale*_*lex 6 enums circular-reference swift
main.swift在 Xcode Version 13.3 (13E113) 中创建一个全新的 macOS Command Line Tool 项目,并用以下代码替换内容:
import Foundation
enum StructA {
// case case1(value: StructB)
case case2(expr: StructB)
}
indirect enum StructB {
case case3
case case4(expr: StructB)
}
Run Code Online (Sandbox Code Playgroud)
导致以下编译时错误:
<unknown>:0: error: circular reference
/Users/alextj/projects/TestProject/main.swift:8:15: note: through reference here
indirect enum StructB {
^
<unknown>:0: note: through reference here
Run Code Online (Sandbox Code Playgroud)
但是,如果取消case1注释该行,则循环引用错误就会消失!
所以下面的代码编译没有错误:
<unknown>:0: error: circular reference
/Users/alextj/projects/TestProject/main.swift:8:15: note: through reference here
indirect enum StructB {
^
<unknown>:0: note: through reference here
Run Code Online (Sandbox Code Playgroud)
为什么?
为什么注释掉会case1导致循环引用?
我执行了以下步骤,帮助我在更新到后解决循环引用Xcode 13.3.1:
1-清洁项目。
2-清理派生数据。
3- 将项目构建设置SWIFT_COMPILATION_MODE从增量更改为整个模块。
https://forums.swift.org/t/strange-enum-circular-reference-error-in-xcode-13-3/56721/2
| 归档时间: |
|
| 查看次数: |
976 次 |
| 最近记录: |