我正在使用 SSKeychain 来存储会话令牌。当我从 XCode 编译和运行应用程序时,有时找不到令牌(似乎它偶尔会起作用)。但是,如果我拔下设备并在没有 XCode 的情况下运行应用程序,则令牌会返回 10/10 次。我不确定这是否是 SSKeychain 或 Keychain 的问题。我用来存储和读取值的代码如下:
- (void)setSecureValue:(NSString *)value forKey:(NSString *)key
{
[SSKeychain setPassword:value forService:kServiceName account:key];
}
- (NSString *)secureValueForKey:(NSString *)key
{
if (key != nil)
{
return [SSKeychain passwordForService:kServiceName account:key];
}
return nil;
}
通过意识到钥匙串不是数据存储并且它有时可以被清空(例如由于内存警告),似乎可以解决许多围绕钥匙串访问的问题。但是,由于我总是在同一台设备上运行,并且在拔下并再次运行后令牌仍然存在,我不明白这可能是这里的问题。