我使用SSkeychain类将数据保存到Keychain中,但是当我尝试遍历帐户时,应用程序在列表中的第三项中崩溃,其中acct =< 5f70666f&gt ;;
我正在尝试删除该特定帐户,但我无法将其删除。我尝试删除与应用相关联的所有钥匙串数据,但我仍然面临问题
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;
}
)
答案 0 :(得分:2)
- [__ NSCFData isEqualToString:]:无法识别的选择器发送到实例0x1740abcb0
我试图将nsdata与字符串进行比较,这就是崩溃的原因。
尝试这样的事情:
id acctObject = [account valueForKey:@"acct"];
NSString *acctString = ([acctObject isKindOfClass:[NSString class]]) ? (NSString *)acctObject : ([acctObject isKindOfClass:[NSData class]]) ? [[NSString alloc] initWithData:acctObject encoding:NSUTF8StringEncoding] : nil;
if (acctString && [acctString isEqualToString:constKeychainAccountTitle]) {
// stuff
}