2014-11-03 231 views
1

我正在寫一些iOS上的鑰匙串代碼。當我嘗試在鑰匙串中插入一個項目時,出現錯誤-50。OSStatus錯誤-50是什麼意思?

OSStatus錯誤-50是什麼意思?

+1

'errSecParam = -50,/ *一個或多個參數傳遞給一個無效的函數。 * /' – holex 2014-11-03 16:08:06

+0

哪裏可以找到錯誤的完整列表?謝謝! – zumzum 2014-11-03 16:08:39

+1

'Security.framework/SecBase.h'或這裏https://developer.apple.com/library/ios/documentation/Security/Reference/SecurityFrameworkReference/_index.html,_Keychain Services_ – holex 2014-11-03 16:10:57

回答

2

錯誤-50errSecParam,並意味着你在一個函數傳遞參數的至少一個是/不是有效的。

這可能是由於類型差異或可能是無效值。 See this page on the Apple site閱讀從蘋果errSecParam官方文檔。

1

如果您要將密碼添加到鑰匙串,請確保您將其作爲數據而不是字符串傳遞,否則您將得到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) 
}