Сохранение файлов cookie в приложении iOS? - PullRequest
53 голосов
/ 04 января 2011

Я собираюсь использовать NSHTTPCookieStorage в приложении для iOS, чтобы управлять файлами cookie, полученными из URL-адреса, и я понимаю, что они будут управлять файлами cookie во время выполнения вашего приложения. Однако мне было интересно, можно ли сохранить файлы cookie после закрытия приложения. А затем снова прочитайте эти куки, когда приложение снова откроется. Сохраняются ли NSHTTPCookieStorage файлы cookie между приложениями? Или только во время выполнения приложений? Нужно ли использовать CoreData для сохранения этих файлов cookie? `

Ответы [ 2 ]

108 голосов
/ 03 января 2012

Вам не нужно сохранять файлы cookie самостоятельно, как это предлагается в другом ответе. NSHTTPCookieStorage сохранит файлы cookie для вас, но вы должны убедиться, что срок действия файлов cookie установлен на стороне сервера.

Файлы cookie без даты истечения срока действия считаются «только сеансами» и очищаются при перезапуске приложения. Вы можете проверить ситуацию «только для сессии» через свойство BOOL в NSHTTPCookie. Это стандартный файл cookie, а не специфический для iOS.

45 голосов
/ 04 января 2011

Вам нужно переустановить куки, когда ваше приложение загружено.Я использую такой код:

NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:@"MySavedCookies"];
if([cookiesdata length]) {
    NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata];
    NSHTTPCookie *cookie;

    for (cookie in cookies) {
        [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
    }
}

, и он работает просто отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...