Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 目标C以编程方式从密钥链中删除帐户_Ios_Objective C_Keychain - Fatal编程技术网

Ios 目标C以编程方式从密钥链中删除帐户

Ios 目标C以编程方式从密钥链中删除帐户,ios,objective-c,keychain,Ios,Objective C,Keychain,我使用SSkeychain类将数据保存到Keychain中,但当我尝试遍历帐户时,应用程序在列表的第三项中崩溃,其中acct= 我正在尝试删除该特定帐户,但无法删除它。我试图删除所有与应用程序关联的钥匙链数据,但我仍然面临这个问题 SSKeychainQuery *query = [[SSKeychainQuery alloc] init]; BOOL isMatchPasscode=FALSE; NSArray *accounts = [query fetchAll:nil]; for (id

我使用SSkeychain类将数据保存到Keychain中,但当我尝试遍历帐户时,应用程序在列表的第三项中崩溃,其中acct=

我正在尝试删除该特定帐户,但无法删除它。我试图删除所有与应用程序关联的钥匙链数据,但我仍然面临这个问题

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;
}
)
SSKeychainQuery*query=[[SSKeychainQuery alloc]init];
BOOL isMatchPasscode=FALSE;
NSArray*accounts=[query fetchAll:nil];
for(帐户中的id帐户){
如果([[账户]
valueForKey:@“acct”]IseQualtString:constKeychainAccountTitle])
{
}
}
帐户日志
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;
坟墓=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;
坟墓=0;
},
{
acct=;
agrp=“99P5TJ23MZ.view.Street.dev”;
cdat=“2017-03-07 08:53:20+0000”;
gena=;
mdat=“2017-03-07 08:53:20+0000”;
musr=;
pdmn=dku;
svce=“com.view.Street.dev”;
sync=0;
坟墓=0;
}
)

-[\uu NSCFData isEqualToString:]:发送到实例0x1740abcb0的选择器无法识别


我试图比较nStask与String的关系,这是崩溃的原因。< /P> 试着这样做:

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
}

-[\uu NSCFData isEqualToString:]:发送到实例0x1740abcb0的选择器无法识别


我试图比较nStask与String的关系,这是崩溃的原因。< /P> 试着这样做:

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
}

什么是崩溃消息和堆栈跟踪?-[\u NSCFData isEqualToString:]:无法识别的选择器发送到实例0x1740abcb0,因此您的代码假定它从keychain获取字符串,但在本例中,它检索了NSData,然后您尝试对其执行字符串比较。在执行字符串操作之前,应该更改代码以使用<代码> IsHyfOfType 检查字符串。我试图比较NStATS与字符串的关系,这是崩溃的原因。我的应用程序有两个版本,开发版和生产版,我使用的设备测试开发版本会使应用程序从应用程序商店崩溃,我无法在这些设备上运行应用程序商店版本您无法对NSData执行字符串比较。您可以从NSData初始化字符串。什么是崩溃消息和堆栈跟踪?-[\u NSCFData isEqualToString:]:无法识别的选择器发送到实例0x1740ABCB0,因此您的代码假定它从keychain获取字符串,但在本例中,它检索了NSData,然后您尝试对其执行字符串比较。在执行字符串操作之前,应该更改代码以使用<代码> IsHyfOfType 检查字符串。我试图比较NStATS与字符串的关系,这是崩溃的原因。我的应用程序有两个版本,开发版和生产版,我使用的设备测试开发版本会使应用程序从应用程序商店崩溃,我无法在这些设备上运行应用程序商店版本您无法对NSData执行字符串比较。你可以从NSData初始化一个字符串。是的,我已经在我的最新版本中实现了这段代码,它不再崩溃了。问题是为了安全地将数据保存到设备中,我在开发版本中使用了keychain,但我已经上传到app store的构建正在崩溃。它不会在没有用于测试开发版本的设备上崩溃,它只会在那些有/有开发构建测试的设备上崩溃。我已经在我的最新版本中实现了这段代码,它不再崩溃。问题是为了安全地将数据保存到设备中,我在开发版本中使用了keychain,但我已经上传到app store的构建正在崩溃。它不会在未用于测试开发版本的设备上崩溃,它只会在已测试开发版本的设备上崩溃