在iOS应用程序中坚持Cookie?
我将在iOS应用程序中使用NSHTTPCookieStorage
来pipe理从url中检索到的cookie,并且我知道它将在您的应用程序运行时pipe理cookie。 但是,我想知道是否有可能在应用程序closures后坚持cookie。 然后再次打开应用程序时再读取这些cookie。 NSHTTPCookieStorage
在应用程序使用之间是否存在Cookie? 或只是在应用程序运行时? 我是否需要使用CoreData
来保存这些cookie?
加载应用程序时,您需要重新设置Cookie。 我使用这样的代码:
NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:@"MySavedCookies"]; if([cookiesdata length]) { NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata]; NSHTTPCookie *cookie; for (cookie in cookies) { [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; } }
它工作得很好。
你不应该像其他答案中build议的那样,自己坚持cookies。 NSHTTPCookieStorage
将为您保留cookie,但您需要确保cookie在服务器端设置了过期date。
没有过期date的Cookies被认为是“仅限会话”,并且在您重新启动应用程序时将被清除。 您可以通过NSHTTPCookie
的BOOL属性来检查“session only”情况。 这是标准的cookie,而不是特定于iOS的东西。