6

我正在使用 KeychainItemWrapper 类(项目中集成的 .h 和 .m 文件)在 iOS App 的 Keychain 中保存密码。还在项目中需要的地方导入了“Security”框架和“keychianItemWrapper.h”类。(#import,#import“KeychainItemWrapper.h”)

我在应用程序委托方法中使用以下代码在钥匙串访问中保存密码:

if([textfieldPassword1.text isEqual:textfieldPassword2.text]){

                NSLog(@"CONGRATS !! PASSCODE MATCHED !!!");           

                //converting "textfieldPassword1" to NSNumber
                NSNumber *textfieldPasscode1Num = [NSNumber numberWithInt:[textfieldPassword1.text intValue]];

                //saving passcode to the keychain access  
               [keychain setObject:textfieldPasscode1Num forKey:(__bridge id)kSecValueData];

           //    [keychain setObject:[NSNumber numberWithInt:[textfieldPassword1.text intValue]] forKey:(__bridge id)kSecAttrAccount];

                // if passcode matches then load Show Lock Screen Page
                self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
                self.viewController = [[ViewController alloc] init];
                [self.window addSubview:self.viewController.view];
                [self.window makeKeyAndVisible];
            }

这里是使用以下代码重置密码:

if(_isResetPasscode){
                NSLog(@"Code here for Update Passcode in Keychain Access !!!");
                _isResetPasscode = FALSE;

              // "keychain" is object of "KeychainItemWrapper" class         
                [keychain resetKeychainItem];

/* Again setting the new passcode entered by user in keychain access.. IT IS NOT SAVING IN keychain access, where above the same line of code was working for saving passcode in keychain access
/*
                [keychain setObject:resetPasscodeNum forKey:(__bridge id)kSecValueData];

                NSLog(@"----Passcode Re-Setted ----!! %@\n",resetPasscodeNum);
            }

当我每次打印“0”时在控制台中打印钥匙串密码时。请指导我哪里做错了...您的帮助将不胜感激!

提前致谢

4

1 回答 1

0

您尚未指定输入密码的格式。我假设它可以是任何类型的文本。如果是这种情况,如果输入的文本实际上不是数字,则此行将失败:

[textfieldPassword1.text intValue]

并将返回 0;

于 2012-08-23T18:38:30.870 回答