删除用户的钥匙串iOS

时间:2012-02-19 05:12:51

标签: ios tabbar keychain

那么,

我的应用程序有一个tabBar,其中一个按钮是“配置”。在这个视图中,我只有一个“忘记”按钮,负责“删除”用户的钥匙串。用户可以将钥匙串保存在AppDelagate中调用的应用程序的第一个视图(ModalView)上。所以,我怀疑的是如何在另一个类中删除这个钥匙串?我在AppDelagate中创建了ConfigurationViewController并启动了钥匙串,但它无法正常工作。

的AppDelegate:

ConfigurationViewController *_cvc = [[[ConfigurationViewController alloc] initWithNibName:@"ConfigurationViewController" bundle:[NSBundle mainBundle]] autorelease];

self.cvc = _cvc;

cvc.keychain = self.keychain;

[cvc release];

ConfigurationViewController.h:

#import <UIKit/UIKit.h>
#import "InformationViewController.h"
#import "KeychainItemWrapper.h"

@interface ConfigurationViewController : UIViewController {
  KeychainItemWrapper *keychain;
}

@property (nonatomic, retain) KeychainItemWrapper *keychain;

@end

ConfigurationViewController.m:

- (IBAction)forget:(id)sender
{
   // Erase all information saved in KeyChain
   [ keychain resetKeychainItem ];

   // Pass the selected object to the new view controller.
   [ self.tabBarController setSelectedIndex:0 ];
}

我不知道是否只需重置钥匙串......

编辑1:

AppDelegate.m 上,我验证是否有关于keyChain的信息。

if ( hasInformation ) {
...
} else {
   // open a presentModalViewController with a form to fill with login information
   [ rootTabBarController presentModalViewController:lvc animated:NO ];
}

LoginViewController.m

if ( allFormIsOkay ) {

    // store username
    if ( [login text] )
      [ keychain setObject:[login text] forKey:(id)kSecAttrAccount ];

    // Store password
    if ( [password text] )
      [ keychain setObject:[password text] forKey:(id)kSecValueData ];
} else {
    [ keychain resetKeychainItem ];
}
[ self dismissModalViewControllerAnimated:YES ];

我正在尝试“擦除” ConfigurationViewController 上的钥匙串(我已经展示过)。

0 个答案:

没有答案