在: 这个问题据说AFNetworking
发生在后台自动护理饼干,但在以前 ,我提出的问题,我遇到了麻烦,保持这是在PHP做,当我登录的服务器上的会话一旦我关闭(停在Xcode调试)应用程序,然后回到会议不见了。 答案是坚持饼干,像这样来解决这个问题:
NSData *cookiesData = [[NSUserDefaults standardUserDefaults] objectForKey:@"User"];
if ([cookiesData length] > 0) {
for (NSHTTPCookie *cookie in [NSKeyedUnarchiver cookiesData]) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}
}
这给了我一个应用程序崩溃,当我尝试做这样的事情。 当我登录我设置NSUserDefault就像这样:
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"User"];
//Then synthesize
这是使用这个错误的方式? 是NSHTTPCookieStorage甚至我的问题? 谢谢。
使用以下,这是为了保存和加载为我工作饼干正确的方法:
- (void)saveCookies{
NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject: [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject: cookiesData forKey: @"sessionCookies"];
[defaults synchronize];
}
- (void)loadCookies{
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData: [[NSUserDefaults standardUserDefaults] objectForKey: @"sessionCookies"]];
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in cookies){
[cookieStorage setCookie: cookie];
}
}
希望能帮助到你!