我有以下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个可能的变型。为什么我仍然有一个建议来包含“默认条款”?
“点”是CGPoint吗? 'frame'是CGRect吗? – 2014-11-06 16:29:18
正确,但'frame.origin'也是'CGPoint',所以我没有看到可能的冲突。 – 2014-11-06 16:30:00
我要求确保不涉及任何可能的类型。 – 2014-11-06 16:31:29