Сохранение файлов cookie в приложении iOS?
Я собираюсь использовать NSHTTPCookieStorage в приложении iOS для управления файлами cookie, которые извлекаются из url-адреса, и я понимаю, что он будет управлять файлами cookie во время выполнения вашего приложения. Однако мне было интересно, можно ли сохранить куки-файлы после закрытия приложения. А затем снова прочитайте эти куки, когда приложение снова откроется. Делает NSHTTPCookieStorage сохранять куки между использованием приложения? Или только во время выполнения приложений? Нужно ли мне использовать CoreData чтобы сохранить эти куки?-
2 ответов:
вам нужно повторно установить куки, когда ваше приложение загружается. Я использую такой код:
NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:@"MySavedCookies"]; if([cookiesdata length]) { NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata]; NSHTTPCookie *cookie; for (cookie in cookies) { [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; } }и это работает просто отлично.
вам не нужно сохранять куки самостоятельно, как это предлагается в другом ответе.
NSHTTPCookieStorageсохранит куки для вас, но вы должны убедиться, что куки имеют срок годности, установленный на стороне сервера.Cookies без даты истечения срока действия считаются "только сессией" и будут очищены при перезапуске приложения. Вы можете проверить ситуацию "только сеанс" через свойство BOOL в
NSHTTPCookie. Это стандартные файлы cookie, а не что-то конкретное для iOS.
Comments