Ios 在登录时存储用户信息以供以后使用

Ios 在登录时存储用户信息以供以后使用,ios,objective-c,xcode,Ios,Objective C,Xcode,我正在构建一个应用程序,在登录时,用户名/密码的正确组合将返回一些基本用户信息(firstName、lastName、userType、companyID等) 在整个应用程序中,我需要这些值和字符串来检索特定于用户的数据 我可以在登录时将所有这些值和字符串存储在NSObject或NSData子类中,以便以后调用它来检索我需要的项吗?我该怎么做?或者有更好的选择吗?如果您只是存储成功登录返回的数据,如您所说的名字、姓氏等,我会使用NSUserDefault。 如果您打算存储任何敏感信息,如用户名或

我正在构建一个应用程序,在登录时,用户名/密码的正确组合将返回一些基本用户信息(firstName、lastName、userType、companyID等)

在整个应用程序中,我需要这些值和字符串来检索特定于用户的数据


我可以在登录时将所有这些值和字符串存储在NSObject或NSData子类中,以便以后调用它来检索我需要的项吗?我该怎么做?或者有更好的选择吗?

如果您只是存储成功登录返回的数据,如您所说的名字、姓氏等,我会使用NSUserDefault。
如果您打算存储任何敏感信息,如用户名或密码或其他需要额外保密的信息,我建议使用钥匙链

我会使用钥匙链,因为它是安全的。选中此项

您可以使用
NSUserDefaults
。创建一个用户模型。执行
NSCoding
协议。存储时存档,从NSUserDefaults获取时取消存档

@interface User: NSObject<NSCoding>

    @property (nonatomic, copy)   NSString *firstName;
    @property (nonatomic, copy) NSString *lastName;

    - (void)save;
    + (id)savedUser;
现在您可以创建的实例

User *user = [[User alloc]init];
user.firstName = @"";
user.lastName = @"";
[user save];
当您想要检索时

User *user = [User savedUser];
编辑: 如果要清除数据,请调用static方法以删除保存的用户信息

[User clearUser];

您可以将其存储在1中。用户默认值,或2。钥匙链。这取决于您需要什么。您可以将数据保存在NSUserDefaults中。我最近发布了一篇关于如何在NSUserDefaults中存储自定义类的帖子;密钥链值将被保留。密钥链是安全的,但不要完全信任它:
[User clearUser];