【发布时间】:2023-03-20 17:50:01
【问题描述】:
当我将 Xcode 与 Objective-C 一起使用时,经常发生在我身上的是:
我将写一个switch/case 声明。通常,为了确保语句是分开的,程序员必须确保在cases 之间存在break;s。
我经常忘记将break; 语句放入其中,因此设备不会仅执行所需的case,而是执行case,然后执行case它。这发生在物理设备 (iPhone 6) 和 iOS 模拟器上的每个模拟设备上。
failed 语句的语法如下所示,someInt 是一个数字,可以是 0 或 1:
switch (someInt)
{
case 0:
{
// some statements to execute if "someInt" is 0
}
case 1:
{
// some statements to execute if "someInt" is 1
break;
}
}
请注意,在case 0: 中,没有break; 语句。这会导致case 0: 执行然后 case 1 执行,而不是只需case 0 即可执行。
有没有办法可以在 Xcode 中放置一个标志,以便在我忘记 break; 语句时向我发出警告?
我知道很多程序员可能因为这个问题而困惑了几天甚至几周。
【问题讨论】:
-
我不得不承认我个人的解决方案是避免在 Objective-C 中使用 switch 语句。这是切换(双关语)到 Swift 的原因。完全安全、可用的 switch 语句。无需休息,无需自动跌倒。
-
switch 的语法是从动态类型编程语言转向静态类型编程语言的一个原因......?
-
静态类型当然是另一个很好的理由:)
标签: objective-c xcode switch-statement