我正在使用SSkeychain类将数据保存到钥匙串中,但是当我尝试迭代帐户时,应用程序在列表中的第三项中崩溃,其中acct = < 5f70666f>;objective C以编程方式从钥匙串中删除帐户
我想删除该特定帐户,但我无法将其删除。我试图删除相关联的所有应用程序中的钥匙串数据,但还是我面临的问题
SSKeychainQuery *query = [[SSKeychainQuery alloc] init];
BOOL isMatchPasscode=FALSE;
NSArray *accounts = [query fetchAll:nil];
for (id account in accounts){
if([[account
valueForKey:@"acct"]isEqualToString:constKeychainAccountTitle ])
{
}
}
LOG FOR ACCOUNTS
acct = "fc_uuidForDevice";
agrp = "99P5TJ23MZ.com.view.Street.dev";
cdat = "2017-03-07 08:53:17 +0000";
mdat = "2017-03-07 09:45:32 +0000";
musr = <>;
pdmn = ck;
svce = "com.view.Str.dev";
sync = 0;
tomb = 0;
},
{
acct = "fc_uuidsOfUserDevices";
agrp = "99P5TJ23MZ.view.Street.dev";
cdat = "2017-03-07 08:53:17 +0000";
mdat = "2017-03-07 09:45:32 +0000";
musr = <>;
pdmn = ck;
svce = "com.view.Street.dev";
sync = 1;
tomb = 0;
},
{
acct = <5f70666f>;
agrp = "99P5TJ23MZ.view.Street.dev";
cdat = "2017-03-07 08:53:20 +0000";
gena = <5f70666f>;
mdat = "2017-03-07 08:53:20 +0000";
musr = <>;
pdmn = dku;
svce = "com.view.Street.dev";
sync = 0;
tomb = 0;
}
)
什么是崩溃的消息和堆栈跟踪? – Paulw11
- [__ NSCFData isEqualToString:]:无法识别的选择器发送到实例0x1740abcb0 – Vinaykrishnan
因此,您的代码假定它从keychain获取一个字符串,但在这种情况下,它检索NSData,然后尝试对其执行字符串比较。你应该改变你的代码使用'isKindOfClass'来检查你有一个字符串,然后再执行字符串操作 – Paulw11