我需要为我的应用程序注销按钮,我有以下代码:

        while ([[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies] count] != 0) {
            for (NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {
                [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
            }
        }

(虽然只是为了确保它们被删除而存在,但是它只运行一次)

如果我在上面的代码之后用NSLog记录对共享cookie存储的描述,则它输出该数组为空。但是,我终止了该应用程序或只是将其关闭,然后在应用程序启动后的第一件事是NSLog对共享cookie存储的描述,所有cookie仍然存在。

我已经尝试在for循环中将Cookie设置为nil,甚至尝试将dealloc发送到cookie(我知道您不应该这样做,但是我现在正在尝试任何操作)

最佳答案



我制作了一个sample project来重现此问题-发现只有在应用程序收到SIGKILL信号时才会发生,例如从Xcode中停止调试器时。在我的实验中,未处理的异常,崩溃,exit()和abort()不会导致NSHTPPCookieStorage丢失数据。

因为这看起来像一个仅调试的问题(仅在使用调试器时发生),所以我关闭了之前填写的 radar

我无法测试所有内容:请随意使用示例项目来查看其他崩溃原因是否会导致Cookie丢失。

10-01 08:59