2011-11-13 5 views
0

私は私のアプリを起動すると、私はキーチェーンに任意の保存された資格情報があるかどうかを確認したいので、私はこのしようとしている:Objective-Cのキーチェーン項目がnullの場合(objectForKey)を確認する方法

- (BOOL)areStoredCredentials { 
if(![keychain objectForKey:(id)kSecAttrAccount]) return NO; 
else{ 
    NSLog(@"STORED CREDENTIALS : %@/%@", [keychain objectForKey:(id)kSecAttrAccount], [keychain objectForKey:(id)kSecValueData]); 
    self.login = [keychain objectForKey:(id)kSecAttrAccount]; 
    self.password = [keychain objectForKey:(id)kSecValueData]; 
    return YES; 
}} 

しかし、この関数は、格納された信任状がヌルであっても、決してNOを返しません。それも、印刷物:

2011-11-13 21:58:07.205 NeroApp [541:F803]保存されている資格情報:/

誰もがなぜ知っていますか?

+0

「keychain」オブジェクトを生成するコードを表示できますか?私はそれが 'SecItemCopyMatching'の結果辞書だと思います、そうですか? –

答えて

3

あなたがキーチェーンから空の文字列を取得しているようです。

if (![[keychain objectForKey:(id)kSecAttrAccount] length]) return NO; 
else { 
    ... 
} 
+0

それはうまく動作します。どうもありがとう ! –

関連する問題