Как должен использоваться `removeCookiesSinceDate`?
Есть этот новый отличный метод NSHTTPCookieStorage
, доступно с MacOS 10.10 и iOS 8.0. Судя по ничтожному количеству хитов Google, никто пока не заметил этого. Не так уж удивительно, учитывая, что это еще даже не в документации для разработчиков Apple, просто в заголовке. Но я все еще надеюсь, что кто-то знает, как использовать это, потому что я не делаю:) Я пытаюсь использовать это для очистки всех куки вместо смущающей итерации фляги куки. Итак, я назвал это с
[NSDate dateWithTimeIntervalSince1970:0]
и БУМ, EXC_BAD_ACCESS
в MemoryCookies::visitCookies
, Хорошо, эпоха UN*X была слишком подлой, наверное. Итак, я попробовал
[NSDate dateWithTimeIntervalSinceNow:-86400];
и снова БУМ. Поэтому я продолжил делить интервал и обнаружил, что он действительно хочет, чтобы хотя бы один файл cookie был как минимум таким же старым, как date
параметр. Таким образом, вам все равно придется перебирать куки, чтобы найти самый старый, а затем вызывать новый блестящий метод. Это настолько нелепо, что я даже осмелюсь назвать это ошибкой.
Мысли?
2 ответа
Он работает, как и ожидалось, по крайней мере, начиная с iOS 8.1, т.е. удаляет куки независимо от возраста и не вылетает. Интересно, что это все еще только в заголовках, но не в справочнике Какао для iOS и OSX. Вероятно, что-то с NSHTTPCookieStorage
будучи все еще "API в разработке" начиная с iOS 2.0.
ОБНОВЛЕНИЕ Теперь также в справочных документах Какао
Я думаю, что это ошибка во всех версиях iOS 8. Я смог вызвать это в iOS 8.3. Я решил просто вручную удалить файлы cookie следующим образом:
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
for (NSHTTPCookie *cookie in cookies) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}