在应用程序中保存数据并在iOS编程中加载?

在应用程序中保存数据并在iOS编程中加载?,ios,save,uitextfield,Ios,Save,Uitextfield,我在一个视图控制器中有三个文本字段,我想保存用户输入的每个文本。 我不知道如何保存数据,所以我需要帮助。用户创建帐户需要三条信息。用户将使用它登录到他的帐户。我需要创建一个文本字段数组吗?如果是,如何使用?您应该使用KeychainItemWrapper类来存储安全数据。 首先在此下载.h和.m文件。 现在通过拖放将它们添加到项目中。不要忘记这样做: 在应用程序中,导航到 构建阶段->链接库并添加安全框架 现在,在viewController的实现文件中导入刚才添加的类 #import &qu

我在一个视图控制器中有三个文本字段,我想保存用户输入的每个文本。

我不知道如何保存数据,所以我需要帮助。用户创建帐户需要三条信息。用户将使用它登录到他的帐户。我需要创建一个文本字段数组吗?如果是,如何使用?

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

在应用程序中,导航到

构建阶段->链接库
并添加
安全框架

现在,在
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];
稍后,如果要检索这些字段,只需使用以下代码获取它们:

- (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];
注意:

  • 当我们使用密钥kSecValueData时,密码字段存储为数据。因此,为了便于查看,应该将其转换为字符串。这就是我在上面所做的
  • (_桥id)只能在ARC项目中使用

  • 希望这有帮助!:)

    对于非安全信息,请使用
    NSUserDefaults
    ,对于安全信息,请使用钥匙链。的可能重复项