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