Switch语句必须是详尽的

Mor*_*lde 0 ios swift

我有以下switch陈述,似乎完全无遗漏.

switch (point.x > frame.origin.x, point.y > frame.origin.y) {
case (true, true): // Bottom right
    moveSubviewX = subview.frame.origin.x - moveBy
    moveSubviewY = subview.frame.origin.y - moveBy
case (false, true): // Bottom left
    moveSubviewX = subview.frame.origin.x + moveBy
    moveSubviewY = subview.frame.origin.y - moveBy
case (true, false): // Top right
    moveSubviewX = subview.frame.origin.x - moveBy
    moveSubviewY = subview.frame.origin.y + moveBy
case (false, false): // Top left
    moveSubviewX = subview.frame.origin.x + moveBy
    moveSubviewY = subview.frame.origin.y + moveBy
}
Run Code Online (Sandbox Code Playgroud)

tuple具有两个Bool部件只有4个可能的变型.为什么我仍然建议包含"默认条款"?

Adi*_*dis 5

只有在切换枚举时,XCode才会检查switch语句是否详尽无遗.对于其他所有情况,它会检查是否存在默认语句,如果没有,则会发出警告.

您可以使用枚举,也可以根据需要压制警告,或者只添加缺少的默认语句.