Switch语句必须是详尽的

时间:2014-11-06 16:21:10

标签: 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
}

如果tuple包含两个Bool个组件,则只有4种可能的变体。为什么我仍然建议包含“默认条款”?

1 个答案:

答案 0 :(得分:5)

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

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