2015-11-22 1 views
-2

Я пытаюсь сделать сегментированный элемент управления, который содержит два значения, но у меня возникают проблемы с этим. Я хочу умножить входные данные любой стороной, выбранной в сегментированном представлении и отображаемой на ярлыке, но я все время сталкиваюсь с ошибками. Любая помощь?Сегментированный контроль в калькуляторе

@IBOutlet var input: UITextField! 
@IBOutlet var output: UILabel! 
@IBOutlet var controller: UISegmentedControl! 
@IBAction func convert(sender: UIButton) { 
} 






@IBAction func change(sender: AnyObject) { 
    if controller.selectedSegmentIndex == 0 { 
     result = number1 * 1 
    } 
    if controller.selectedSegmentIndex == 1 { 
     result = number1 * 5 
    } 



    let number1 = Double(input.text!) 
    label.text = "\(result)" 

} 
+1

«Я постоянно сталкиваюсь с ошибками», какие ошибки? что такое «результат»? что не работает? – luk2302

+0

Представьте эти ошибки нам. – zuziaka

ответ

3

Почему вы используете «число1» перед объявлением? Попробуйте следующее:

@IBOutlet var input: UITextField! 
@IBOutlet var output: UILabel! 
var result:Double! //fixed "cannot be applied to Double and Int." problem 
@IBOutlet var controller: UISegmentedControl! 
@IBAction func convert(sender: UIButton) { 
} 


@IBAction func change(sender: AnyObject) { 
let number1 = Double(input.text!) 
    if controller.selectedSegmentIndex == 0 { 
     self.result = number1 * 1 
    } 
    if controller.selectedSegmentIndex == 1 { 
     self.result = number1 * 5 
    } 




    label.text = "\(result)" 

} 
+0

Я вижу, что вы говорите. Теперь я столкнулся с проблемой, когда он говорит, что двоичный «*» не может быть применен к Double и Int. Но я не могу понять, как это исправить. –

+0

@WesleyBryant Просто измените результат var: Int! для результата var: Double! (: или если вы хотите показать результат как целочисленное значение, измените значение «number1» на Int вместо Double. –