NSHTTPCookieStorage cookie集合的快速枚举行为

时间:2012-07-13 14:24:56

标签: objective-c ios

我偶然发现了这段代码:

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

有了C#的经验,我对代码感到惊讶,在快速枚举中修改集合是违法的。那么我深入研究Objective-C的文档,在快速枚举中修改集合也是非法的。

问题是为什么这段代码会起作用?对我们来说,它解释了我们一直在经历的一些“随机”崩溃。只是想知道deleteCookie调用如何绕过应该抛出删除调用的守卫。

0 个答案:

没有答案