Ambiguous use of "value" while implementing UIStepper

3.2k views Asked by At

I am trying to implement a simple stepper which reflects its value onto a label. While using "Int(sender.value)" I am getting an error "Ambiguous use of value"

//  ViewController.swift
//  Stepper
//
//  Created by Prabhu Konchada on 19/06/15.
//  Copyright (c) 2015 Prabhu. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var StepperValue: UILabel!

    @IBOutlet weak var OutputLabel: UILabel!

    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.
    }


    @IBAction func StepperTap(sender: AnyObject) {

        self.OutputLabel.text = String(Int(sender.value).description)
    }
}
2

There are 2 answers

6
Ashish Kakkad On BEST ANSWER

You can do like as follows :

@IBOutlet var lblStep: UILabel!
@IBAction func stepPressed(sender: UIStepper) {

    lblStep.text = sender.value.description

}

else you have to convert AnyObject to UIStepper like as

var stepControl : UIStepper = sender as! UIStepper

as like :

@IBAction func StepperTap(sender: AnyObject) {
    var stepControl : UIStepper = sender as! UIStepper
    self.OutputLabel.text = stepControl.value.description
}

Whole code as version 6.1 you have to just change to as with as! for 6.3.2:

import UIKit

class ViewController: UIViewController {

    @IBOutlet var lblStep: UILabel!
    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.
    }


    @IBAction func stepPressed(sender: AnyObject) {

        var step : UIStepper = sender as UIStepper

        lblStep.text = step.value.description

    }
}
2
MirekE On

Try to modify your code like this:

@IBAction func StepperTap(sender: UIStepper) {

    self.OutputLabel.text = "\(sender.value)"
}