Установите NSHTTPCookieExpires вручную
Я хочу установить NSHTTPCookie
в NSHTTPCookieStorage
,
Для этого я создаю cookie и добавляю его в NSHTTPCookieStorage
как показано ниже:-
NSDictionary *propertiesDevice = [NSDictionary dictionaryWithObjectsAndKeys:
@"http://www.sample.com/", NSHTTPCookieDomain,
@"/", NSHTTPCookiePath,
@"someCookieName", NSHTTPCookieName,
@"myCookieValue", NSHTTPCookieValue,
timeStamp,NSHTTPCookieExpires,nil];
NSHTTPCookie *cookieDevice = [NSHTTPCookie cookieWithProperties:propertiesDevice];
[[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookie:cookieDevice];
Все свойства NSHTTPCookie
устанавливается, как и ожидалось, кроме NSHTTPCookieExpires
,
- Если я пройду
[NSDate date]
, то значение установлено. Но проблема не в желаемомNSHTTPCookie
форматExpires=Tue, 15-Jan-2013 21:47:38 GMT
, Формат[NSDate date]
является2014-06-19 12:04:00 +0000
, - Когда я пытаюсь изменить формат
NSDate
с помощьюNSDateFormatter
, выходNSString
, - Проблема в том, что независимо от того, что
NSString
Я настроен наNSHTTPCookieExpires
ключ, это занимаетnull
значение.
Хотя в документации сказано, что NSHTTPCookieExpires
принимает NSString
или же NSDate
,
From Apple Doc:-
<td>NSHTTPCookieExpires</td>
<td>NSDate or NSString</td>
<td>NO</td>
<td>Expiration date for the cookie. Used only for version 0
cookies. Ignored for version 1 or greater.</td>
Кто-нибудь имеет представление о том, почему мы не можем установить NSString
значение для ключа NSHTTPCookieExpires
?
1 ответ
В моем случае это не сработало, потому что я клонировал существующий файл cookie и NSHTTPCookieDiscard
был определен там.
Удаление это решило проблему.
Есть другие правила, которые могут сделать срок годности nil
, даже если вы установили его с действительным NSDate
или же NSString
,