2012-08-23 25 views
6

Tôi đang sử dụng lớp KeychainItemWrapper (tệp .h và .m tích hợp trong dự án) để lưu mật mã trong Keychain cho Ứng dụng iOS. Cũng được nhập khẩu "Security" Framework và "keychianItemWrapper.h" lớp trong dự án bất cứ nơi nào nó là cần thiết. (# Import, #import "KeychainItemWrapper.h")Trả về "0" mọi lúc khi tìm nạp mật mã đã lưu keychain từ truy cập keychain cho ứng dụng ios

Tôi đang sử dụng mã dưới đây trong ứng dụng đại biểu phương pháp để tiết kiệm mật mã trong truy cập keychain:

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

VÀ ĐÂY aM đặt Passcode SỬ DỤNG DƯỚI Mã sản phẩm:

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

Khi tôi in keychain mật mã trong giao diện điều khiển mỗi khi nó được in "0". Hãy hướng dẫn tôi nơi tôi đang làm sai ... Trợ giúp của bạn sẽ được đánh giá cao !!

Cảm ơn trước Advance

Trả lời

0

Bạn chưa chỉ định định dạng mật khẩu đã nhập có thể là gì. Tôi cho rằng nó có thể là bất kỳ loại văn bản nào. Nếu đúng như vậy, thì dòng này sẽ thất bại nếu văn bản đã nhập không thực sự là số:

[textfieldPassword1.text intValue] 

và sẽ trả về 0;

+0

Hi @Gambit nhập mật mã là "Số" Input, xem mã đang sử dụng "UIKeyboardTypeNumberPad" cho mật mã: UIAlertView * alertView = [[UIAlertView alloc] initWithTitle: @ "Enter Passcode" thông điệp: @ "Xin Nhập Mật khẩu 4 chữ số "ủy nhiệm: tự hủyButtonTitle: @" OK "otherButtonTitles: @" Cancel ", nil]; textfieldPassword1 = [[UITextField alloc] initWithFrame: CGRectMake (12.0, 90.0, 260.0, 25.0)]; textfieldPassword1.keyboardType = UIKeyboardTypeNumberPad; [textfieldPassword1 setDelegate: self]; [alertView addSubview: textfieldPassword1]; [hiển thị cảnh báo]; – NSExpression

Các vấn đề liên quan