【问题标题】:guard let - Consecutive statements on a line must be separated by ';' 3守卫让 - 一行上的连续语句必须用';'分隔3
【发布时间】:2015-09-18 15:34:39
【问题描述】:

我目前只是在玩 swift。我正在关注 Lynda.com 手表套件教程,该教程将引导观众创建一个简单的手表计算器。

以下方法抛出错误“一行上的连续语句必须用';'分隔”

 func updateText(){
         guard let labelInt:Int64 = Int64(labelString) else {
             label.setText("Number is too big")
             return
         }
         label.setText("\(labelInt)")
     }

由于某种原因,xCode 无法识别警卫,因此该语句会引发错误。我看过多个使用警卫的教程,我错过了什么?该教程似乎使用完全相同的方法字符到字符没有问题。

整个文件供参考:

 import WatchKit
 import Foundation

 class InterfaceController: WKInterfaceController {

     var labelString:String = "0"

     @IBOutlet var label: WKInterfaceLabel!
     @IBAction func tapped0(){tappedNumber(0)}
     @IBAction func tapped1(){tappedNumber(1)}
     @IBAction func tapped2(){tappedNumber(2)}
     @IBAction func tapped3(){tappedNumber(3)}
     @IBAction func tapped4(){tappedNumber(4)}
     @IBAction func tapped5(){tappedNumber(5)}
     @IBAction func tapped6(){tappedNumber(6)}
     @IBAction func tapped7(){tappedNumber(7)}
     @IBAction func tapped8(){tappedNumber(8)}
     @IBAction func tapped9(){tappedNumber(9)}

     func tappedNumber(num:Int){
         labelString = labelString.stringByAppendingString("\(num)")
         updateText()
     }

     func updateText(){
         guard let labelInt:Int64 = Int64(labelString) else {
             label.setText("Number is too big")
             return
         }
         label.setText("\(labelInt)")
     }

     @IBAction func tappedPlus(){

     }
     @IBAction func tappedMinus(){

     }
     @IBAction func tappedClear(){

     }
     @IBAction func tappedEquals(){

     }

     override func awakeWithContext(context: AnyObject?) {
         super.awakeWithContext(context)

         // Configure interface objects here.
     }

     override func willActivate() {
         // This method is called when watch view controller is about to be visible to user
         super.willActivate()
     }

     override func didDeactivate() {
         // This method is called when watch view controller is no longer visible
         super.didDeactivate()
     }

 }

【问题讨论】:

  • 您使用的是 Swift 1.x / Xcode 6 还是 Swift 2 / Xcode 7? guard 表达式仅在 Swift2 中可用
  • 我正在使用 Xcode 6.4 并且还很新,以至于我不知道如何检查我正在使用的 swift 版本。
  • 快速谷歌搜索找到了一个终端命令。这就是问题所在,我正在运行 1.2
  • Xcode 6 使用 Swift 1.2。 (没有guard 声明)。 Xcode 7 在 App Store 上可用
  • 谢谢,如果您想将此作为官方答案,我会接受并将我的问题留给其他人。

标签: ios xcode swift


【解决方案1】:

guard 表达式仅在 Swift 2 / Xcode 7 中可用

Xcode 7 的最终版本已于几天前(9 月 17 日)发布

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 2023-01-25
    • 1970-01-01
    相关资源
    最近更新 更多