如何使用Swift 2在iOS中实现NSUndoManager和数组

时间:2015-12-14 01:25:00

标签: ios arrays swift2 nsundomanager

这么快的问题。我正在为飞镖游戏编写iOS应用程序。我正在尝试实现撤消按钮以撤消上一个操作。

发生了什么:当您按下任何按钮时,他们会将该数量添加到分数中。按钮产生影响的用户得分是currentPlayer。 我希望撤消按钮撤消最后按下的按钮。我一直在研究,似乎他们都在展示如何硬编码撤消动作。但它可能是6个按钮hit_single,hit_double,attack_double ......等等中的任何一个。

第一:我不知道如何使用undoManager.registerUndoWithTarget(target:AnyObject,selector:Selector,object:AnyObject?),我不知道如何应用这个以及这3个中的每一个事情。

第二场:在我的比赛中,你必须从1-20(飞镖盘上的数字)开始,然后击中靶心赢。变量user1score和user2score增加其计数以显示玩家瞄准的数字。然而,在20岁之后我想要分数显示" Bullseye"。我不确定是否有办法编写混合内容数组,允许计数1-20,然后第20个数组值说" Bullseye"。或者写一个If语句,说明user1score / user2score是否大于20 print" Bullseye"。问题是它说它是一个整数,我不能输入一个字符串值。

这是我的代码:

import UIKit

class Galaxy_VC: UIViewController {

@IBOutlet var currentPlayerName: UILabel!

@IBOutlet weak var user1score: UILabel!

@IBOutlet weak var user2score: UILabel!

@IBOutlet weak var darts_Thrown: UILabel!

var names = ["Big Meat", "J Hooks"]

var currentPlayer = 0

var scores = [0, 0]

var count = 0


override func viewDidLoad() {
    super.viewDidLoad()

    setupGame()

}

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

func setupGame() {
    user1score.text = "\(count)"
    user2score.text = "\(count)"
}


func updateTurn() {
    currentPlayerName.text = names[currentPlayer]
    user1score.text = "\(scores[0])"
    user2score.text = "\(scores[1])"
}

func undoLast(score: NSNumber) {
    undoManager?.registerUndoWithTarget(self, handler: <#T##AnyObject -> ()#>)
}

@IBAction func btn_NextTurn(sender: UIButton) {
    currentPlayer = 1 - currentPlayer
    updateTurn()
}

@IBAction func btn_UndoTurn(sender: AnyObject) {

}

@IBAction func hit_Single(sender: AnyObject) {
    scores[currentPlayer] + 1
    updateTurn()
}

@IBAction func hit_Double(sender: AnyObject) {
    scores[currentPlayer] + 2
    updateTurn()
}

@IBAction func hit_Triple(sender: AnyObject) {
    scores[currentPlayer] + 3
    updateTurn()
}

@IBAction func Miss(sender: AnyObject) {
    scores[currentPlayer] - 1
    updateTurn()
}

@IBAction func attack_double(sender: AnyObject) {
    scores[1 - currentPlayer] - 2
    updateTurn()
}

@IBAction func attack_Triple(sender: AnyObject) {
    scores[1 - currentPlayer] - 3
    updateTurn()
}
}

您可以提供的任何帮助将非常感谢!谢谢!

0 个答案:

没有答案