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;
}
キーチェーン アクセスに関する多くの問題は、キーチェーンがデータ ストレージではなく、場合によっては空になる可能性があることを認識することで解決されるようです (たとえば、メモリの警告が原因で)。ただし、私は常に同じデバイスで実行しており、プラグを抜いて再度実行した後もトークンが残っているため、これがどのように問題になるのかわかりません。