ios - 由于未捕获的异常 'NSInvalidArgumentException',钥匙串(keychain)包装器终止应用程序,原因 : '-[_NSZeroData _fastCharacterContents]

标签 ios keychain keychainitemwrapper

我正在使用此处找到的钥匙串(keychain)包装器:

https://gist.github.com/1170641

像这样:

.h:

    #import "KeychainItemWrapper.h"

    KeychainItemWrapper *keychainItem;

.m:

 keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"login" accessGroup:nil];

NSString *password = [keychainItem objectForKey:(__bridge id)kSecValueData];
NSString *username = [keychainItem objectForKey:(__bridge id)kSecAttrAccount];

然后它崩溃了:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[_NSZeroData _fastCharacterContents]:发送到实例 0x14dcba60 的无法识别的选择器”

编辑:

感谢回答问题的用户,崩溃不再存在,但当我检索用户名或密码时,它们有时会被交换,我的意思是 80% 的时间。

最佳答案

编辑: 我正在使用 kSecValueData,但在 KeychainItemWrapper.m 中注释掉了 //#define PASSWORD_USES_DATA 。此外,我开始使用 resetKeychainItem 而不是尝试自己覆盖这些值。

旧答案: 我遇到了这个问题,直到我将 kSecValueData 更改为 kSecAttrService,它也可以根据 SecItem.h 用于密码。现在一切似乎都工作正常(设置和检索)。

关于ios - 由于未捕获的异常 'NSInvalidArgumentException',钥匙串(keychain)包装器终止应用程序,原因 : '-[_NSZeroData _fastCharacterContents],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20202475/

相关文章:

ios - UILabel 的图层在动画时不更新颜色

ios - 重置设备上的钥匙串(keychain)

encryption - GPG - 以非交互方式更改密码

iphone - 我可以访问 iPhone 上的钥匙串(keychain)吗?

ios - 在钥匙串(keychain)中存储多个用户名和密码凭证

iOS10 上的 KeychainItemWrapper 崩溃

ios - 钥匙串(keychain)可以像类固醇上的 NSUserDefaults 一样用于存储 NSData 吗?

ios - 作为一种类型的 Swift 协议(protocol)

iphone - 创建通过委托(delegate)回调完成的任务队列

ios - Firebase AuthUI - 查找现有用户还是新用户