4

我想NSHTTPCookieNSHTTPCookieStorage.

为此,我正在创建一个 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.

  1. 如果我通过[NSDate date],则设置该值。但问题是它不是所需NSHTTPCookieExpires=Tue, 15-Jan-2013 21:47:38 GMT. 的格式[NSDate date]2014-06-19 12:04:00 +0000.
  2. 当我尝试更改NSDateusing的格式时NSDateFormatter,输出为NSString.
  3. 问题是,无论NSString我设置什么NSHTTPCookieExpires键,它都是null有价值的。

尽管在文档中它说NSHTTPCookieExpires需要NSStringor 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

4

1 回答 1

1

就我而言,它不起作用,因为我正在克隆现有的 cookie 并NSHTTPCookieDiscard在那里定义。

删除它解决了这个问题。

有其他规则可以设置到期日期nil,即使您使用有效的NSDateor设置它也是如此NSString

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSHTTPCookie_Class/

于 2015-11-13T01:29:14.470 回答