标签保存时,变量返回0

时间:2016-01-15 23:40:02

标签: ios swift label uilabel nsuserdefaults

我制作了一个应用程序,我在其中保存了一个标签,我可以在我的应用中将其上下移动一个数字。但是,如果我丢失了我的应用程序并将其重新打开,如果我再次将标签重新启动,则重新设置为零并转到一个标签。这是因为我必须将变量值设置为零。这是我的代码:

    @IBOutlet var goal: UILabel!

    @IBAction func player1button(sender: AnyObject)
    {
    NSUserDefaults.standardUserDefaults().setValue(goal.text!, forKey:"firstGoal")
    }

    var goal1 = 0

    @IBAction func goalUp(sender: AnyObject)
    {
    goal1++
    goal.text = "\(goal1)"
    }

    override func viewDidLoad()
    {
    super.viewDidLoad()
    goal.text = (NSUserDefaults.standardUserDefaults().objectForKey("firstGoal") as? String)
    }

我保存目标号码,然后在文本中稍后再调用它。请告诉我一种解决方法,以便它只是添加到之前的数字。

2 个答案:

答案 0 :(得分:0)

在viewDidLoad()中添加

goal1 = Int((NSUserDefaults.standardUserDefaults().objectForKey("firstGoal") as? String)!)

这将设置用于在应用加载时将目标跟踪到正确值的int变量。目前,您只是将文本标签设置为正确的值。

答案 1 :(得分:0)

或者您可以简单地将var goal1设置为全局变量,就在导入之后和class关键字之前,以防您在下次打开应用程序本身时不需要保留数据