0
        NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

        NSArray *cookies = [storage cookiesForURL:[NSURL URLWithString:@"http://www.facebook.com/"]];
        NSLog(@"old cookies!: %@",cookies);
        NSHTTPCookie *cookie;
        for (cookie in [storage cookies]) {
            [storage deleteCookie:cookie];
        }
        NSLog(@"new cookies!: %@",cookies);

我正在尝试在注销功能中删除 facebook cookie,但没有删除任何 cookie。我不懂为什么。任何帮助将不胜感激。

4

1 回答 1

0

如果您希望保留对 NSHTTPCookieStorage 的更改,您还需要在修改 cookie 存储后同步 standardUserDefaults:

[[NSUserDefaults standardUserDefaults] synchronize];

为了防止这降低您的应用程序的速度,您可能还希望在后台线程上调用它,如下所示:

dispatch_queue_t backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);

dispatch_async(backgroundQueue, ^{
    //TODO: Cookie deletion logic here
});

编辑:

如果你只需要完全忽略给定 NSURLRequest 的 cookie,你可以这样做:

[request setHTTPShouldHandleCookies:NO];

其中 request 是你的 NSURLRequest 实例。

于 2015-07-17T14:18:48.687 回答