访问不同视图中的Keychain元素

时间:2014-01-22 13:04:09

标签: iphone xcode keychain

我使用多视图,标签式应用。从FirstViewController,我使用PresentViewController来显示LoginViewController。 在LoginViewController上,我使用Keychain在用户登录我的应用程序时保存用户名和密码。

KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"LoginInfos" accessGroup:nil];
                    [keychainItem setObject:_password forKey:(__bridge id)(kSecValueData)];
                    [keychainItem setObject:_pseudo forKey:(__bridge id)(kSecAttrAccount)];

现在,我希望能够检查FirstViewController是否在keychain中设置了什么,如果是,显然不显示LoginViewController。但是当我尝试从FirstViewController访问钥匙串时,即使在执行#import'KeychainItemWrapper.h'之后,我也会收到一条错误消息,说我正在使用未声明的标识符'keychainItem'。

    NSString *mdp = [keychainItem objectForKey:(__bridge id)(kSecValueData)];
    NSString *username = [keychainItem objectForKey:(__bridge id)(kSecAttrAccount)];

如何从其他视图访问存储在钥匙串中的信息?是否有更好的解决方案(例如,全局变量?)来检查用户是否已登录?

1 个答案:

答案 0 :(得分:0)

听起来您只需要在KeychainItemWrapper中初始化FirstViewController的实例......只需执行:

KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"LoginInfos" accessGroup:nil];
在尝试从中检索值之前再次