2014-09-20 3 views
-3

Я пытаюсь создать простую версию «Угадай, сколько пальцев». Как игра, в которую вы играли в детстве? Да, это. У меня есть странная ошибка в одном из моих операторов if, и он говорит «Ожидаемое замедление». Я просто хочу, чтобы значение в текстовом поле/поле было равно случайному числу для запуска функции.Если ошибка оператора «Ожидаемое отталкивание»

Вот мой код.

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

+0

@chaserobbins, см. Мой ответ для объяснения. – WMios

0

1.guessField является текстовым полем, которое будет содержать строку. (И даже для строки это guessfield.text)

2.you сравнивает целое число в строку.

Так починка

NSString *strVar=[NSString stringWithFormat:@"%d",var]; 
if[(guessField.text isEqualToString strVar]){ 
    // Your code---- 
} 
Смежные вопросы