2015-12-02 2 views
3

Продолжайте получать -50 при попытке добавить элемент в цепочку безопасности.secItemAdd keep return -50 error in swift

var query = [String:AnyObject]() 
    query[kSecClass as String] = kSecClassGenericPassword 
    query[kSecAttrAccount as String] = "a" 
    query[kSecValueData as String] = "b" 
    let result = SecItemAdd(query as CFDictionary, nil); 

результат -50. Не могу понять, зачем, нужна помощь .. спасибо заранее.

ответ

5

Я считаю, что значение для ключа kSecValueData должно быть NSData, а не строкой или NSString. Попробуйте кодировать строку в данные (например, кодировку UTF-8). Непроверенные сниппет:

query[kSecValueData as String] = "b".dataUsingEncoding(NSUTF8StringEncoding) 

Для дальнейшего использования, код ошибки -50 соответствует errSecParam, которой заголовок SecBase.h документы как значение: «Один или несколько параметров, передаваемых в функцию не были действительными.» Если вы снова видите эту ошибку, попробуйте изменить значения, которые вы передаете, с помощью словаря запросов.

+0

, который работает сразу, спасибо большое. – user1470393

+0

У меня есть еще один вопрос относительно брелка, вы можете помочь? http://stackoverflow.com/questions/34053049/seccopyerrormessagestring-gives-use-of-unresolved-identifier-in-swift – user1470393

Смежные вопросы