2014-09-20 49 views
-3

我正在嘗試製作一個簡單的「猜猜多少個手指」應用程序。就像你在童年時玩的遊戲一樣?是的。我有一個奇怪的錯誤,我的一個if語句,它說「預期的減速度」我只是想要如果文本框/字段中的值等於隨機數來觸發一個函數。如果聲明錯誤「Expected Delceration」

這是我的代碼。

import UIKit 

class ViewController: UIViewController { 
//Outlets 
    //text box for guessing 
    @IBOutlet weak var guessField: UITextField! 

    //Correct or Incorrect Display 
    @IBOutlet weak var yn: UILabel! 

    //Label that shows how many guesses you have left 
    @IBOutlet weak var guessesLabel: UILabel! 


//Needed Variables 
    var randomNumber = arc4random() % 6 
    var guesses = 3 
//Start Code 

    if (guessField == randomNumber){ 
    //This is where the error appears^^   
    var yn = "Correct!" 

    }else{ 

    guesses - 1 
    var yn = "Try again!" 
    var guessesLabel = "Remaining Guesses: " + guesses 

    } 
//Endgame function 
    if (guesses > 1){ 
    var yn = "I was holding up \(randomNumber) fingers!" 


    //Endgame function if 1 finger 
    if (randomNumber == 1){ 

     var yn = "I was holding up 1 finger!" 


     } 

    } 


    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

回答

0

你想:

//Needed Variables 
    var randomNumber = arc4random() % 6 
    var guesses = 3 
//Start Code 

    if (guessField == randomNumber){ 
    //This is where the error appears^^   
    var yn = "Correct!" 

    }else{ 

    guesses - 1 
    var yn = "Try again!" 
    var guessesLabel = "Remaining Guesses: " + guesses 

    } 
//Endgame function 
    if (guesses > 1){ 
    var yn = "I was holding up \(randomNumber) fingers!" 


    //Endgame function if 1 finger 
    if (randomNumber == 1){ 

     var yn = "I was holding up 1 finger!" 


     } 

    } 

爲:

func customFunction() -> //type { 

//Needed Variables 
    var randomNumber = arc4random() % 6 
    var guesses = 3 
//Start Code 

    if (guessField == randomNumber){ 
    //This is where the error appears^^   
    var yn = "Correct!" 

    }else{ 

    guesses - 1 
    var yn = "Try again!" 
    var guessesLabel = "Remaining Guesses: " + guesses 

    } 
//Endgame function 
    if (guesses > 1){ 
    var yn = "I was holding up \(randomNumber) fingers!" 


    //Endgame function if 1 finger 
    if (randomNumber == 1){ 

     var yn = "I was holding up 1 finger!" 


     } 

    } 
} 
1

的問題是,經過該行if (guessField == randomNumber),一切都沒有任何函數中。你不能在類聲明的頂層有可執行代碼。這就是爲什麼編譯器告訴你在這一點上你需要一個聲明(例如一個函數聲明)。

+0

我剛開始這個星期的學習斯威夫特。你能解釋我如何解決這個問題嗎? – chaserobbins 2014-09-20 23:36:36

+0

@chaserobbins,請參閱我的答案以獲得解釋。 – WMios 2014-09-23 17:20:49

0

1.guessField是其中將包含的字符串文本字段。(甚至爲弦,它是guessfield.text)

2.you是一個整數比較字符串。

所以解決方法是

NSString *strVar=[NSString stringWithFormat:@"%d",var]; 
if[(guessField.text isEqualToString strVar]){ 
    // Your code---- 
}