在不同视图中访问钥匙串元素

问题描述:

我使用多视图,选项卡式应用。从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,如果是这样,显然不是显示LoginViewController。但是,当我尝试从FirstViewController访问钥匙串时,即使在执行#import'KeychainItemWrapper.h'后,我也收到一个错误消息,说我正在使用未声明的标识符'keychainItem'。

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

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

这听起来像你只需要在你的FirstViewController初始化的KeychainItemWrapper实例......只是做:

KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"LoginInfos" accessGroup:nil]; 

再次尝试从中检索值之前。