我正在iOS上编写一些钥匙链代码。当我试图在钥匙扣中插入一个项目时,我会得到错误-50。
OSStatus错误-50是什么意思?
它是errSecParam
,表示您的一个或多个参数错误。
此处:https://developer.apple.com/library/ios/documentation/Security/Reference/keychainservices/index.html#//apple_ref/c/econst/errSecParam
如果要向钥匙链添加密码,请确保将其作为Data而非String传递,否则将收到OSStatus错误-50。
static func savePassword(password: Data, account: String) throws -> OSStatus {
let query = [
kSecClass as String: kSecClassGenericPassword as String,
kSecAttrAccount as String: account,
kSecValueData as String: password
] as [String: Any]
SecItemDelete(query as CFDictionary)
return SecItemAdd(query as CFDictionary, nil)
}
错误-50
是errSecParam
,这意味着在函数中传递的至少一个参数无效。
这可能是由于类型差异,或者可能是无效的值。请参阅苹果网站上的此页面,阅读苹果在errSecParam
上的官方文档。