我正在使用AFNetworking 2.0和Mantle来连接API并返回用户帐户。
我的计划是调用以application:didFinishLaunchingWithOptions:
方法获取用户数据的函数。然后我会encode the data and save the user into NSUserDefaults
这是接近此任务的最佳方式吗?有什么替代品? (我想远离创造单身人士)
更新
有些代码可能有助于展示我脑子里的想法:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *encodedUserData = [defaults objectForKey:@"currentUser"];
if (encodedUserData) {
self.currentUser = [NSKeyedUnarchiver unarchiveObjectWithData:encodedUserData];
} else {
NSLog(@"No current user");
// Show login ViewController
}
答案 0 :(得分:0)
如果您每次用户启动应用程序时都要获取用户帐户,则无需将其存储在NSUserDefaults中。只需使用单例或静态对象将其存储为模型对象类型。
static Account *_userAccount = nil;
+ (Account*)userAccount {
return _userAccount;
}
+ (void)setUserAccount:(Account*)account {
_userAccount = account;
}
答案 1 :(得分:0)
您可以将NSUserDefaults用于此目的,并可以通过应用程序访问它。
// to save data in userdefaults
[[NSUserDefaults standardUserDefaults] setObject:@"your object" forKey:@"your key"];
[[NSUserDefaults standardUserDefaults] synchronize];
// for getting saved data from User defaults
NSData *encodedUserData = [[NSUserDefaults standardUserDefaults] objectForKey:@"your key"];
if (encodedUserData) {
self.currentUser = [NSKeyedUnarchiver unarchiveObjectWithData:encodedUserData];
} else {
NSLog(@"No current user");
// Show login ViewController
}