- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用流行的库更新钥匙串(keychain)中的游戏分数:Locksmith .
在我的 Initial ViewController viewDidLoad()
中,我使用这段代码将值初始设置为:0
do {
try Locksmith.saveData(data:["score" : 0], forUserAccount: "some_unique_game_name")
} catch {
print("Error")
}
在我的第二个 ViewController 中,我在顶部初始化了钥匙串(keychain)项目,如下所示:
let keychain_data = Locksmith.loadDataForUserAccount(userAccount: "some_unique_game_name")
然后在一个检索分数的函数中,我有这段代码:
NSLog("Score is: \(self.keychain_data!["score"])").
这在控制台中返回:
Score is: 0
现在,我有另一个函数可以像这样设置游戏分数:
func updateScor(to: score) {
NSlog("score is: \(score)")
do {
try Locksmith.updateData(data:["score" : score], forUserAccount: "some_unique_game_name")
} catch {
print("Error")
}
NSlog("saved score is: \(score)")
}
这在日志中给了我:
score is: 9999
saved score is: 9999
现在,当我再次玩游戏时,分数值仍然设置为:
Score is: 0
(这不会返回到将其设置为 0 的初始 View Controller )。
应该是:9999
有什么想法吗?
最佳答案
看来您正在尝试从旧值打印。
更新数据后,您应该从 keyChains 取回数据以从那里获取最新副本。
你的代码应该是下面的方式
1) 在viewDidLoad()
2)获取kechain_data并打印,你会看到0
var keychain_data = Locksmith.loadDataForUserAccount(userAccount: "some_unique_game_name")
NSLog("Score is: \(self.keychain_data!["score"])")
3) 使用 updateScor(to: 9999)
设置你的分数
4) 再次获取 keychain_data 然后尝试 NSLog
keychain_data = Locksmith.loadDataForUserAccount(userAccount: "some_unique_game_name")
NSLog("Score is: \(self.keychain_data!["score"])")
希望对您有所帮助!
关于Swift:锁匠不更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52425565/
我试图在游戏结束时存储一个值。 我正在使用 https://github.com/matthewpalmer/Locksmith updateData 方法。 Github Repo 上说 as we
所以我似乎在从 Keychain 获取这个值时遇到了一些问题。 这是我用来保存密码的。这在第二个 View Controller 上调用。 do { try Locksmith.updateDa
我正在使用 Locksmith 作为 Swift 的钥匙串(keychain)包装器,但是当尝试保存数据时它显示以下错误 The operation couldn’t be completed. (L
我似乎无法在其他问题上找到解决方案。 我正在使用 Swift Locksmith ( https://github.com/matthewpalmer/Locksmith) 库。 这是我的: let
我是一名优秀的程序员,十分优秀!