2012-08-23 8 views
6

Estoy usando la clase KeychainItemWrapper (archivos .h y .m integrados en el proyecto) para guardar el código en Keychain para la aplicación iOS. También importé el Framework "Security" y la clase "keychianItemWrapper.h" en el proyecto donde sea necesario. (# Import, #import "KeychainItemWrapper.h")Volviendo a "0" cada vez que obtengo keychain salvado el código de acceso de llavero para la aplicación ios

Estoy usando el código de abajo en el método delegado de la aplicación para guardar el código en acceso llavero:

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]; 
      } 

Y aquí estoy REINICIANDO PASSCODE mediante el siguiente CÓDIGO:

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); 
      } 

Cuando estoy imprimiendo código de acceso llavero en la consola cada vez que se imprime "0". Por favor, guíame donde estoy haciendo mal ... ¡¡Tu ayuda sería apreciada !!

Gracias de antemano

Respuesta

0

No ha especificado qué formato podría ser la contraseña introducida. Estoy asumiendo que podría ser cualquier tipo de texto. Si ese es el caso, esta línea fallará si el texto ingresado no es realmente un número:

[textfieldPassword1.text intValue] 

y devolverá 0;

+0

Hola código de acceso @Gambit de escribir es "Número" de entrada, véase el código estoy usando "UIKeyboardTypeNumberPad" para el código de acceso: UIAlertView * alertView = [[UIAlertView alloc] initWithTitle: @ "Introducir código de acceso" mensaje: @ "Por favor introduzca "Delegado de Código de 4 dígitos": cancelación automáticaTítulo de Botón: @ "OK" otrosTítulos de Botón: @ "Cancelar", nada]; textfieldPassword1 = [[UITextField alloc] initWithFrame: CGRectMake (12.0, 90.0, 260.0, 25.0)]; textfieldPassword1.keyboardType = UIKeyboardTypeNumberPad; [textfieldPassword1 setDelegate: self]; [alertView addSubview: textfieldPassword1]; [show de alerta]; – NSExpression

Cuestiones relacionadas