gpt4 book ai didi

iphone - 记住swift中2个ViewController的高分

转载 作者:行者123 更新时间:2023-11-30 10:13:00 26 4
gpt4 key购买 nike

我有 2 个 ViewController,在第一个 ViewController 中用户获得分数和高分标签。在第二个 ViewController 中,代码计算用户是否打破了旧的高分,如果是的话 - 当然它会改变。但!当我退出应用程序并再次开始玩时,高分标签显示我的最后得分,而不是最高分。这是我的代码:

第一个 View Controller :

let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()

defaults.synchronize()
highScore.text = String(stringInterpolationSegment: oldScore)

第二个 View Controller :

let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
if score > oldScore {
defaults.setInteger(score, forKey: "oldScore")
defaults.synchronize()
var money = defaults.valueForKey("oldScore") as! Int
oldScore = money
} else {
defaults.setInteger(oldScore, forKey: "oldScore")
defaults.synchronize()
var money = defaults.valueForKey("oldScore") as! Int
oldScore = money
}

我还在 View Controller 代码中获得了 var oldScore = Int(),但在 View Controller 的类之外。

此外,我还有一个以“ON”状态启动的“Switch”按钮。但有时我/用户想将其更改为关闭,如何在退出应用程序并重新启动后将其保存为用户的选择?

最佳答案

首先检查是否设置了 oldScoreNSUserDefault 。如果未设置,则仅初始化 oldScore,否则不初始化。只需获取 oldScore 的值并将其与新分数进行比较并相应地设置该值即可

if (NSUserDefaults.standardUserDefaults().objectForKey(oldScore) == nil) {
oldScore = Int()
}

在您的第二个 View Controller 中,首先将 NSUserDefault 的 oldScore 的值放入变量中,然后检查它是否等于您的 Score。如果只是这样设置:

let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
var oldScoreCheck = defaults.valueForKey("oldScore") as! Int
if score > oldScoreCheck {
defaults.setInteger(score, forKey: "oldScore")
defaults.synchronize()
}

关于iphone - 记住swift中2个ViewController的高分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31891690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com