2012-08-23 28 views
6

मैं KeychainItemWrapper वर्ग (एकीकृत ज और परियोजना में मीटर फ़ाइल) का उपयोग कर रहा के लिए कीचेन पहुंच से पासकोड बचा लिया। जहां भी इसकी आवश्यकता हो, परियोजना में "सुरक्षा" फ्रेमवर्क और "keychianItemWrapper.h" वर्ग भी आयात किया गया। (# आयात, # आयात "KeychainItemWrapper.h")रिटर्निंग "0" हर जब प्राप्त करने में कठिनाई कीचेन iOS एप्लिकेशन के लिए कीचेन में पासकोड को बचाने के लिए iOS एप्लिकेशन

मैं पासकोड को सहेजने के लिए ऐप प्रतिनिधि विधि में नीचे कोड का उपयोग कर रहा हूं कीचेन पहुंच:

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

और यहां कोड नीचे का उपयोग पासकोड रीसेट करना AM:

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"। कृपया मुझे मार्गदर्शन करें जहां मैं गलत कर रहा हूं ... आपकी मदद की सराहना की जाएगी !!

अग्रिम में धन्यवाद

उत्तर

0

आपने निर्दिष्ट नहीं किया है कि दर्ज किया गया पासवर्ड किस प्रारूप में हो सकता है। मुझे लगता है कि यह किसी भी तरह का पाठ हो सकता है। अगर ऐसा है, तो यह रेखा अगर दर्ज किया गया टेक्स्ट वास्तव में कोई अंक नहीं है असफल हो जायेगी:

[textfieldPassword1.text intValue] 

और 0 प्राप्त होगा;

+0

हाय @Gambit प्रवेश किया पासकोड है "संख्या" इनपुट, पासकोड के लिए "UIKeyboardTypeNumberPad" उपयोग कर रहा हूँ कोड देखें: UIAlertView * alertView = [[UIAlertView alloc] initWithTitle: @ संदेश "पासकोड दर्ज": @ "कृपया दर्ज करें 4 अंक पासकोड "प्रतिनिधि: स्वयं रद्द करें बटनटन: @" ठीक है "अन्य बटन टाइटल: @" रद्द करें ", शून्य]; textfieldPassword1 = [[UITextField alloc] initWithFrame: CGRectMake (12.0, 90.0, 260.0, 25.0)]; textfieldPassword1.keyboardType = UIKeyboardTypeNumberPad; [textfieldPassword1 setDelegate: self]; [alertView addSubview: textfieldPassword1]; [चेतावनी दृश्य दिखाएँ]; – NSExpression