我正在开发一款几乎已经完成的游戏,所以我已经到了必须在本地存储用户的高分的位置。在游戏中存储高分的最安全方式是什么?有人认为NSUserDefaults不是一种安全的方式,因为用户可以操纵他们的高分,例如他们越狱。
我是Spritekit编程的新手,所以请您建议存储不太复杂的高分的最佳方法。如果你也提供一个例子那么它会很棒,否则就没问题了。
谢谢
答案 0 :(得分:4)
您无法保护您的分数免受越狱用户的侵害。因为他们有时甚至可以在将其上传到游戏中心等之前操纵高分。
此外,努力必须与结果相匹配。您可以使CoreData-DB保存三个数字。但这将是一种矫枉过正。您必须编写大量代码来保存一个数字。
所以我认为对于没有复杂系统的大多数游戏都有项目,选择等。使用NSUserDefaults大多数都可以。
所以我会保持简单并使用NSUserDefaults
func saveHighscore(highscore:Int){
//Check if there is already a highscore
if let currentHighscore:Int = NSUserDefaults.standardUserDefaults().valueForKey("highscore") as? Int{
//If the new highscore is higher then the current highscore, save it.
if(highscore > currentHighscore){
NSUserDefaults.setValue(highscore, forKey: "highscore")
}
}else{
//If there isn't a highscore set yet, every highscore is higher then nothing. So add it.
NSUserDefaults.setValue(highscore, forKey: "highscore")
}
}