应该如何使用“removeCookiesSinceDate”



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

[NSDate dateWithTimeIntervalSince1970:0]

和繁荣,EXC_BAD_ACCESSMemoryCookies::visitCookies.好吧,UN*X 时代可能太卑鄙了。所以我试过

[NSDate dateWithTimeIntervalSinceNow:-86400];

和再次繁荣。所以我继续划分间隔,发现它确实想要至少一个至少与 date 参数一样旧的 cookie。因此,无论如何,您都必须迭代cookie以找到最古老的cookie,然后调用新的shiny方法。这太荒谬了,我什至敢称它为错误。

思潮?

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

NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
for (NSHTTPCookie *cookie in cookies) {
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}

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

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

相关内容

  • 没有找到相关文章