您好我创建了一个应用程序并用于在NSUserDefaults
中存储highScores,并且每次使用此代码启动游戏时都会加载highScore
:
var highScore = NSUserDefaults.standardUserDefaults().integerForKey("highScore")
然后我听说它很容易修改,所以我想我会使用钥匙串。我不太了解keyChain然后我发现SwiftKeychainWrapper看起来很容易实现。我正在使用此代码
var highScorestring: String = KeychainWrapper.stringForKey("highScore")!
var highScore = Int(highScorestring)
然而,每次应用程序启动时,我都会得到一个found nil while unwrapping Optional value
,我怀疑是由于第一行代码强制解包highScorestring
。
我猜Keychain在退出后并没有真正保留数据?我在没有强制解包的情况下对其进行了测试,但确实为let if
并且highScore
始终为0,因为代码未运行。有人可以解释为什么会发生这种情况吗?