我有一个奇怪的情况。我在 switch 语句的大括号中的以下代码中遇到异常
imageViewPosition = self.imageView6.center;
switch(direction) {
case(1):
if (starty-imageViewPosition.y>50) {
imageViewPosition.y = starty+100;
} else {
imageViewPosition.y = starty;
}
break;
case(2):
...
} <----- Here i get the exception
starty 是双重班级成员。而 imageViewPosition 是一个 CGPoint。当我像这样运行它时,我得到一个 EXC_BAS_ACCESS 异常。
在以下情况下,我没有例外,一切都按预期工作。我不明白为什么会这样。
a)当我在 if 语句中添加括号时,一切正常:
if ((starty-imageViewPosition.y)>50) {
b)当我将 case 语句放在大括号内时,一切正常。
imageViewPosition = self.imageView6.center;
switch(direction) {
case(1): {
if (starty-imageViewPosition.y>50) {
imageViewPosition.y = starty+100;
} else {
imageViewPosition.y = starty;
}
}
break;
为什么?我希望 a) 和 b) 选项的答案会有所不同。我之前已经在另一种情况下使用了开关,所以我想了解我做错了什么。谢谢。