【发布时间】:2014-11-01 05:41:38
【问题描述】:
苹果documentation 说
每个 switch 语句都必须是详尽的。也就是说,所有可能的 正在考虑的类型的值必须与以下之一匹配 切换案例。
所以在新的 Xcode 中我放置了这样的代码
println(UInt16.min); // Output : '0'
println(UInt16.max); // Output : '65535'
var quantity : UInt16 = 10;
switch quantity {
case 0...65535: //OR case UInt16.min...UInt16.max:
println();
default:
println();
}
现在,如果我删除默认部分,我会收到编译器错误:
切换必须是详尽的
您要添加缺失的案例吗?修复
所以我的问题是针对我提到的 case 0...65535: 的案例,我没有提到 UInt16 的所有案例值吗?但我仍然收到错误??为什么会出现这个错误,我错过了什么吗??
【问题讨论】:
-
这段代码用 Xcode 7.3/Swift 2.2 编译,所以编译器变得更聪明了:)
-
...但它在运行时崩溃:(