11

NSHTTPCookieStorage从 MacOS 10.10 和 iOS 8.0 开始,就有了这种新的很棒的方法。从微不足道的谷歌点击量猜测,还没有人注意到它。这并不奇怪,因为它甚至还没有出现在 Apple 开发门户文档中,只是在标题中。但我仍然希望有人知道如何使用它,因为我不知道 :) 我试图用它来清除所有 cookie,而不是令人尴尬的 cookie jar 迭代。所以我称之为

[NSDate dateWithTimeIntervalSince1970:0]

和繁荣,EXC_BAD_ACCESSMemoryCookies::visitCookies。好吧,UN*X 时代可能太刻薄了。所以我尝试了

[NSDate dateWithTimeIntervalSinceNow:-86400];

再次繁荣。所以我继续划分区间,发现它确实需要至少一个至少与date参数一样旧的 cookie。因此,无论如何您都必须迭代 cookie 以找到最旧的 cookie ,然后调用新的闪亮方法。这是非常荒谬的不切实际,我什至敢称它为错误。

想法?

4

2 回答 2

4

我确实认为这是所有版本的 iOS 8 中的一个错误。我能够在 iOS 8.3 中触发它。我决定手动删除 cookie,如下所示:

NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
for (NSHTTPCookie *cookie in cookies) {
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}
于 2016-06-23T22:46:23.500 回答
3

至少从 iOS 8.1 开始,它可以按预期工作,即无论年龄大小都会删除 cookie,并且不会崩溃。有趣的是,它仍然只是在标题中,但不在iOS和OSX的 Cocoa 参考中。自 iOS 2.0 以来,可能NSHTTPCookieStorage仍然是“开发中的 API”。

更新 现在也在Cocoa 参考文档中

于 2015-11-02T08:47:26.420 回答