Je vais utiliser NSHTTPCookieStorage
dans une Application iOS pour gérer les cookies qui sont récupérées à partir d'une url, et je comprends qu'il faut gérer les cookies au cours de votre application d'exécution. Cependant, je me demandais si il est possible de persister cookies après la fermeture de l'application. Et ensuite lire ces cookies de nouveau lorsque l'application est ouverte de nouveau. N' NSHTTPCookieStorage
persistent cookies entre l'application utilise? Ou tout simplement pendant les applications d'exécution? Dois-je utiliser CoreData
persister ces biscuits?"
Réponses
Trop de publicités?Vous ne devriez pas besoin de conserver les cookies vous-même comme il est suggéré dans l'autre réponse. NSHTTPCookieStorage
persistent cookies pour vous, mais vous devez vous assurer que les cookies ont une date d'expiration indiquée sur le côté serveur.
Cookies sans date d'expiration sont considérées comme des "session" et obtenir effacée lorsque vous redémarrez l'application. Vous pouvez vérifier la 'session' de la situation par l'intermédiaire d'un BOOL propriété en NSHTTPCookie
. C'est la norme cookie trucs et pas quelque chose de spécifique à iOS.
Vous avez besoin de re-régler les cookies lorsque votre application est chargée. J'ai utiliser le code comme ceci:
NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:@"MySavedCookies"];
if([cookiesdata length]) {
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata];
NSHTTPCookie *cookie;
for (cookie in cookies) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}
}
et il fonctionne très bien.