gpt4 book ai didi

swift +锁匠: Not storing value

转载 作者:搜寻专家 更新时间:2023-10-30 23:09:28 24 4
gpt4 key购买 nike

我试图在游戏结束时存储一个值。

我正在使用 https://github.com/matthewpalmer/Locksmith updateData 方法。

Github Repo 上说

as well as replacing existing data, this writes data to the keychain if it does not exist already

try Locksmith.updateData(["some key": "another value"], forUserAccount: "myUserAccount")

这是我的:

let dictionary = Locksmith.loadDataForUserAccount("gameKeyChainValues")

print("Ended \(EndDateAndTimeString)")

do {
try Locksmith.updateData(["BattleEnd": "12345678"], forUserAccount: "gameKeyChainValues")

}
catch {
print("Unable to set time")
}

print("This line ran")

if let timeBattleEnded = dictionary!["BattleEnd"] as? String {
print("Stored for END: \(timeBattleEnded)")
}

这一行print("Ended (EndDateAndTimeString)")输出:

Ended 19:33:38+2016-08-05

这一行print("Unable to set time")什么都不做

这一行 print("This line ran") 输出:

This line ran

这一行:print("Stored for END: (timeBattleEnded)")什么都不做。

当我设置断点然后在控制台中键入 po dictionary 时,它会显示其他已设置的内容,但不会显示该值。

谁能看出原因?

编辑:

所以,在检查控制台之后。看起来确实是在我将信息保存到钥匙串(keychain)之后它就在那里。然后我切换 View 并更新钥匙串(keychain)中的另一个项目。这似乎删除了原来的项目,只保留了新项目。两者有不同的名称。

有什么想法吗?

最佳答案

用 matthew palmer 的话来说:

Only one piece of data is stored under an account, so when you call updateData it will overwrite whatever's currently stored for that account

因此,每次调用 Locksmith.updateData 时,它基本上都会清除其中的所有数据,然后添加新值。您需要同时发送键和值。

试试这个:

try Locksmith.updateData(["BattleEnd": "12345678", "Key2": "Value Two"], forUserAccount: "gameKeyChainValues")

关于 swift +锁匠: Not storing value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38795832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com