Swift 游戏结束后不重置整数

Swift 游戏结束后不重置整数,swift,nsuserdefaults,Swift,Nsuserdefaults,**我觉得这应该是非常简单的,但我找不到一个教程来解释它,不幸的是,我没有足够的经验来解决它自己,基本上依靠教程来学习 我有一个游戏,如果你跳过一个物体,你会得到一分。如果你愿意,请试着和我想象一下,我已经设置好了,所以屏幕上有两个数字。一个数字在右上角,另一个在左上角。现在,当玩家跳过一个物体时,两个数字都是+1,这就是我想要的。问题是,当玩家输了,两个数字都会被重置。我希望左上角的值不会重置,并随着玩家得到的每一点不断增加 如果有人能帮我解决这个问题,我将非常感激 另外,我应该提到我正在使用

**我觉得这应该是非常简单的,但我找不到一个教程来解释它,不幸的是,我没有足够的经验来解决它自己,基本上依靠教程来学习

我有一个游戏,如果你跳过一个物体,你会得到一分。如果你愿意,请试着和我想象一下,我已经设置好了,所以屏幕上有两个数字。一个数字在右上角,另一个在左上角。现在,当玩家跳过一个物体时,两个数字都是+1,这就是我想要的。问题是,当玩家输了,两个数字都会被重置。我希望左上角的值不会重置,并随着玩家得到的每一点不断增加

如果有人能帮我解决这个问题,我将非常感激

另外,我应该提到我正在使用Swift和Spritekit

好的,我添加了一些代码,希望我的方向是正确的

let defaults = NSUserDefaults.standardUserDefaults()

//This is the value that I want to remain constant and be stored to defaults
let totalText = SKLabelNode(fontNamed: "Masaaki-Regular")


//So this is where I set up the text in my hud, I want it to persist so instead of setting this value = "0" (like with my normal score) I set it to defaults, right? I get an error: 'Int' is not convertible to 'String'
self.totalText.text = defaults.integerForKey("total")
self.addChild(self.totalText)


//Above this is the function that adds a point to the score when the player jumps over a block
self.total++
defaults.setInteger(total, forKey: "total")
defaults.synchronize()

self.totalText.text = String(self.total)
请帮我找出我犯的错误(我肯定有很多,我是新手!)

你的问题在这里:

self.totalText.text = defaults.integerForKey("total")
您正在为接受字符串的属性指定一个整数

你需要转换它。例如:

let total = defaults.integerForKey("total")
self.totalText.text = "\(total)"

显示您应该查看的代码nsuserdefaults@LeonardoSavioDabus我添加了一些代码,希望能帮助人们理解。我阅读了有关NSUserDefaults的内容,并尝试应用我的知识,但我不确定我做得有多好。只需将我提供的类添加到您的项目中,并按照我所描述的那样使用它。使用Swift编码时,无需同步无需在大部分时间使用self。如果Xcode抱怨,就不用它试试,让它为您添加它,在大多数情况下使用Swift编码时无需使用self。如果Xcode有问题,请尝试不使用它,让它为您添加它,谢谢!!终于成功了。我相信这对大多数有经验的程序员来说都是微不足道的,但我几周前才开始做这件事,这个问题让我发疯。我唯一需要在代码中更改的是“let total”到“var total”,现在我已经看到了它的工作原理,我肯定可以将它应用到其他概念中。再次感谢:)我用Objective-C编码,所以我不能代表Swift说话,但这个错误肯定会导致出现警告。检查这些警告很有用。。不要让他们排队直到你停止检查他们!