2014-03-28 94 views
0

我在一個視圖控制器中有三個文本字段,我想保存保存用戶放置的每個輸入。
我不知道如何保存數據,所以我需要幫助。這是用戶創建帳戶的三條信息。用戶將使用它來登錄他的賬戶。我是否需要製作一組文本字段?如果是這樣,怎麼樣?將數據保存在應用程序中並在iOS編程中加載?

+1

對非安全信息使用'NSUserDefaults',並使用鑰匙串獲取安全信息。 –

+0

[iOS:如何在應用程序中存儲用戶名/密碼?](http://stackoverflow.com/questions/6972092/ios-how-to-store-username-password-within-an-app) –

回答

0

您應該使用KeychainItemWrapper類來存儲安全數據。
首先在此github link下載.h.m文件。 現在通過拖放將它們添加到您的項目中。不要忘記這樣做:

enter image description here

在你的應用程序中,導航到

Build phases -> Link Libraries並添加Security.framework
現在在您的viewController實施文件中,導入您剛纔添加的類。

#import "KeychainItemWrapper.h" 

假設你有三個textField S代表進入用戶名電子郵件密碼,你爲他們創造網點爲:現在

@property (weak, nonatomic) IBOutlet UITextField *userNameTextField; 
@property (weak, nonatomic) IBOutlet UITextField *passwordTextField; 
@property (weak, nonatomic) IBOutlet UITextField *emailTextField; 

,在你signUpButtonClick方法,你可以存儲這些字段使用以下代碼:

- (IBAction)signUpButtonClick:(id)sender 
{ 
    [keychainItem setObject:self.emailTextField.text forKey:(__bridge id)kSecAttrService]; 
    [keychainItem setObject:self.passwordTextField.text forKey:(__bridge id)kSecValueData]; 
    [keychainItem setObject:self.userNameTextField.text forKey:(__bridge id)kSecAttrAccount]; 
} 

以後,如果你想獲取這些領域,你可以簡單地用下面的代碼讓他們:

NSString *email = [keychainItem objectForKey:(__bridge id)kSecAttrService]; 
NSString *password = 
[[NSString alloc] initWithData:[keychainItem objectForKey:(__bridge id)kSecValueData] encoding:NSUTF8StringEncoding]; 
NSString *username = [keychainItem objectForKey:(__bridge id)kSecAttrAccount]; 

注:

  1. ,因爲我們使用的密碼字段作爲數據存儲鍵kSecValueData。所以它應該轉換爲字符串用於查看目的。這就是我上面所做的。
  2. (__bridge id)只能在ARC項目中使用。

希望這會有所幫助! :)

相關問題