gpt4 book ai didi

ios - 钥匙串(keychain)返回零

转载 作者:行者123 更新时间:2023-11-28 15:15:05 25 4
gpt4 key购买 nike

最后更新

我正在使用 pod 'KeychainSwift',每次我尝试从 Keychain 获取一些东西时它返回 nil,这是我设置值的函数:

    private func saveUser(email:String!, password:String!)->Bool{
if keychain.set(email, forKey: "email", withAccess: .accessibleAfterFirstUnlock) {
if keychain.set(password, forKey: "password") {
print("User saved succesfully")
return true
} else {
return false
}
} else {
return false
}
}

func setToken(token:String!){
if keychain.set(token!, forKey: "token", withAccess: .accessibleAfterFirstUnlock) {
print("Success...")
} else {
print("Error: Line 36 GeneraFire")
print(keychain.lastResultCode)
}
}

当我尝试使用此函数检索值时:

func getToken()-> String!{
return keychain.get("token")
}

它返回 nil(getEmail 和 getPassword 也返回 nil)。我已经打开了钥匙串(keychain)共享功能并且我有权利。但它就是行不通。

更新:更清楚的实际问题是我通过 saveUser 函数保存了用户并且它说它保存成功(错误代码 0)但是当我检索它时,它返回 nil 并带有我相信的错误代码“-25300”根据文档,它代表“找不到项目”

我按照Yongjoon做了修改,还是不行,(链接现在有更新的代码)

第二次更新我只是将相同的代码 GeneraFire 放在一个空白项目中,它工作正常。那么我的项目是如何导致问题的。

最佳答案

我相信这个问题是由 String 引起的!强行解包。 GeneraFire 中的所有字符串都由 String! 声明。

func getToken()-> String?{
return keychain.get("token")
}

func getEmail()-> String?{
return keychain.get("email")
}

if let status = result["status"] as? String!
>> if let status = result["status"] as? String

Use the conditional form of the type cast operator (as?) when you are not sure if the downcast will succeed. This form of the operator will always return an optional value, and the value will be nil if the downcast was not possible. This enables you to check for a successful downcast.

如果让 status = result["status"] 作为?字符串

  1. 结果[“状态”]为?字符串

由于 result["status"] 返回一个可选值,"as?"表示该值可以为 nil 并转换为“字符串”

  1. 如果让状态

如果 casting result "result["status"] as?String"有一个可选值,展开并赋值给 status。

钥匙串(keychain)共享功能与此问题无关。由于钥匙串(keychain)绑定(bind)到设备而不是应用程序,如果您需要在设备中的应用程序之间共享钥匙串(keychain)值,那么您可以启用“钥匙串(keychain)共享功能”

关于ios - 钥匙串(keychain)返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46995582/

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