AFNetworking自动保存Cookie

在这个问题 ,据说AFNetworking在后台自动照顾的cookies,但在上一个问题,我问,我在保持会议在服务器上的php在login时制成的。一旦我closures(停止在Xcodedebugging)的应用程序,并在会议回去了。 答案是坚持cookies像这样来解决这个问题:

 NSData *cookiesData = [[NSUserDefaults standardUserDefaults] objectForKey:@"User"]; if ([cookiesData length] > 0) { for (NSHTTPCookie *cookie in [NSKeyedUnarchiver cookiesData]) { [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; } } 

当我尝试做这样的事情时,这给我一个应用程序崩溃。 当我login时,我设置NSUserDefault如下所示:

 [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"User"]; //Then synthesize 

这是错误的方式来使用这个? NSHTTPCookieStorage甚至是我的问题? 谢谢。

使用以下,这是一个正确的方式来保存和加载正在为我工​​作的Cookie:

 - (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]; } } 

希望能帮助到你!