我正在構建一個應用程序,在登錄時,用戶名/密碼的正確組合返回一些基本的用戶信息(名字,姓氏,用戶類型,公司ID等)。在登錄時存儲用戶信息供以後使用
我將在整個應用程序中需要這些值和字符串來檢索用戶特定的數據。
我能在登錄所有這些值和字符串存儲在一個NSObject或NSData的子類,這樣我以後可以稱呼它來獲取我需要的項目?我怎樣才能做到這一點?還是有更好的選擇?
我正在構建一個應用程序,在登錄時,用戶名/密碼的正確組合返回一些基本的用戶信息(名字,姓氏,用戶類型,公司ID等)。在登錄時存儲用戶信息供以後使用
我將在整個應用程序中需要這些值和字符串來檢索用戶特定的數據。
我能在登錄所有這些值和字符串存儲在一個NSObject或NSData的子類,這樣我以後可以稱呼它來獲取我需要的項目?我怎樣才能做到這一點?還是有更好的選擇?
如果你只是存儲從登錄成功像你說的,名字,姓氏等,我會NSUserDefaults的使用返回的數據。 如果您打算存儲任何敏感信息,如用戶名或密碼或任何其他需要額外保密的信息,我會建議使用鑰匙串。
我會使用鑰匙串,因爲它是安全的。勾選此STKeychain
鑰匙扣是安全的,但不要把你所有的信任它:http://www.raywenderlich.com/45645/ios-app-security-analysis-part-1 – allprog 2013-09-09 16:36:14
您可以使用NSUserDefaults
。創建一個用戶模型。實施NSCoding
協議。在從NSUserDefaults
獲取時存檔並取消歸檔。
@interface User: NSObject<NSCoding>
@property (nonatomic, copy) NSString *firstName;
@property (nonatomic, copy) NSString *lastName;
- (void)save;
+ (id)savedUser;
//User.m
#define kSavedUser @"SavedUser"
#pragma mark - Encoding
- (void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:self.firstName forKey:@"FirstName"];
[encoder encodeObject:self.lastName forKey:@"LastName"]
}
#pragma mark - Decoding
- (id)initWithCoder:(NSCoder *)decoder
{
self = [super init];
if (self)
{
_firstName = [decoder decodeObjectForKey:@"FirstName"];
_lastName = [decoder decodeObjectForKey:@"LastName"];
}
return self;
}
-(void)save
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self];
[defaults setObject:data forKey:kSavedUser];
[defaults synchronize];
}
+ (id)savedUser
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [defaults objectForKey:kSavedUser];
if (data)
{
return [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
return nil;
}
+ (void)clearUser
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:kSavedUser];
[defaults synchronize];
}
現在,當你想要檢索
User *user = [User savedUser];
編輯您可以創建
User *user = [[User alloc]init];
user.firstName = @"";
user.lastName = @"";
[user save];
一個實例: 如果您想要清除數據,請撥打st atic方法刪除保存的用戶信息
[User clearUser];
如何清除此信息在用戶註銷 – 2014-03-10 09:30:35
@KiritVaghela包括明確的信息方法。 – Anupdas 2014-03-10 09:41:45
您可以將其存儲在** 1。**用戶默認或** 2。**鑰匙串中。這取決於你需要什麼。 – holex 2013-03-07 17:02:45
您可以將數據保存在NSUserDefaults中。我最近發佈了一篇關於如何在NSUserDefaults中存儲自定義類的文章http://stackoverflow.com/a/15242939/767730。 – Anupdas 2013-03-07 17:04:02
請注意,NSUserDefaults在應用程序卸載時消失;鑰匙串值將被保留。 – magma 2013-03-07 17:29:19