операторы switch в быстрых кнопках

Вопрос:

Я не могу понять, как использовать оператор switch в swift, чтобы при нажатии любой кнопки она выполняла println(). каждый раз, когда я нажимаю кнопку, он просто выполняет по умолчанию.

class ViewController: UIViewController{

var addOne : UIButton = UIButton(frame: CGRectMake(0, 0, 40, 40))
var addFive : UIButton = UIButton(frame: CGRectMake(0, 0, 40, 40))

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

addOne.setTitle("+1", forState: UIControlState.Normal)
addOne.backgroundColor = UIColor.blackColor()
addOne.center = (CGPointMake(40, 250))
addOne.addTarget(self, action: "player", forControlEvents: UIControlEvents.TouchUpInside)
view.addSubview(addOne)

addFive.setTitle("+5", forState: UIControlState.Normal)
addFive.backgroundColor = UIColor.blackColor()
addFive.center = (CGPointMake(200, 250))
addFive.addTarget(self, action: "player", forControlEvents: UIControlEvents.TouchUpInside)
view.addSubview(addFive)
}

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

func player(){

switch (true){

case addOne:
println("goodbye")
case addFive:
println("hello world")

default:
println("hello")
}

}

}

Лучший ответ:

Изменить это:

addOne.addTarget(self, action: "player", forControlEvents: UIControlEvents.TouchUpInside)

К этому:

addOne.addTarget(self, action: "player:", forControlEvents: UIControlEvents.TouchUpInside)

И это:

addFive.addTarget(self, action: "player", forControlEvents: UIControlEvents.TouchUpInside)

К этому:

addFive.addTarget(self, action: "player:", forControlEvents: UIControlEvents.TouchUpInside)

Обратите внимание на добавление двоеточия в “player:”

Затем измените это:

func player(){

    switch (true){

    case addOne:
        println("goodbye")
    case addFive:
        println("hello world")

    default:
        println("hello")
    }

}

К этому:

func player(sender: UIButton){

    switch (sender){

    case addOne:
        println("goodbye")
    case addFive:
        println("hello world")

    default:
        println("hello")
    }

}

Оцените статью
TechArks.Ru
Добавить комментарий