以下是我在Swift中遇到问题的代码的简化版本:
enum E {
case C
}
class Test: NSObject {
var v: E = .C
}
当我尝试构建时,出现以下错误:
Undefined symbols for architecture x86_64:
"__TWvdvC8TestTest4Test1vOS_1E", referenced from:
__TFC8TestTest4Testm1vOS_1E in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
要重现这一点,只需创建一个新的Swift项目并将上面的代码粘贴到“AppDelegate.swift”中。或者,创建一个新文件并将其粘贴在那里!
我错过了一些明显的东西,还是这是另一个Swift错误?我确实尝试删除所有派生数据和其他形式的伏都魔法。
感谢您的帮助!
答案 0 :(得分:2)
如果只有一个案例,编译器似乎删除了枚举?
我可以重现你的问题,当我添加第二个案例时它会消失:
enum E {
case C,D
}
class Test: NSObject {
var v : E = .C
}
答案 1 :(得分:1)
尝试这个时我发现了几件事:
case C,D
)中添加一个额外的值,它就可以很好地编译