有一些逻辑,但它不像我想要的那样工作。一切都很好,直到coinNumber成为0,然后重新启动到100(var coins = 100)将分数添加到NSUserDefault
目标是以100开头。然后当你玩它时,它有 - 或+硬币,并保存到另一个变量。
public var coins = 100 // at start got 100 coins
var coinNumber = NSUserDefaults.standardUserDefaults().integerForKey("coins")
func addCoins400() { // adding 400 coins and save it
coins = coins + 400
let CoinsDefault = NSUserDefaults.standardUserDefaults()
CoinsDefault.setInteger(coins, forKey: "coins")
}
if coinNumber != 0 {
coins = coinNumber
}
@IBAction func showAnswer(sender: UIButton) {
if coins >= 50 {
// I show answer
coins = coins - 50
let CoinsDefault = NSUserDefaults.standardUserDefaults()
CoinsDefault.setInteger(coins, forKey: "coins")
CoinsDefault.synchronize()
NSUserDefaults.standardUserDefaults()。同步() – Asdrubal
@Asdrubal大概不会。 http://stackoverflow.com/a/9647965/2227743 – Moritz
@EricAya“因为此方法是定期自动调用的,所以只有当您不能等待自动同步时才使用此方法(例如,如果您的应用程序即将退出),或者即使您没有进行任何更改,也要将用户默认更新为磁盘上的内容。“ [Apple iOS Documentation](https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/index.html#//apple_ref/occ/instm/NSUserDefaults/synchronize)。我不知道OP在使用它的情况,这就是为什么我评论&没有回答的原因 – Asdrubal