在app中保存数据并加载iOS编程?

时间:2014-03-28 01:28:57

标签: ios save uitextfield

我在一个视图控制器中有三个文本字段,我想保存用户放置的每个输入 我不知道如何保存数据,所以我需要帮助。三条信息使用户创建帐户。用户将使用它登录他的帐户。我需要制作一组文本字段吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:0)

您应该使用KeychainItemWrapper类来存储安全数据 首先在此github link下载 .h .m 文件。 现在通过拖放将它们添加到项目中。别忘了这样做:

enter image description here

在您的应用中,导航至

Build phases -> Link Libraries并添加 Security.framework 现在,在viewController实施文件中,导入刚刚添加的课程。

#import "KeychainItemWrapper.h"

假设您有三个textField用于输入用户名 电子邮件密码,您可以为它们创建出口:

@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项目中使用。
  3. 希望这有帮助! :)