2
鉴于这种代码:枚举时删除Cookie:安全吗?
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in cookieStorage.cookies) {
if (/* my specific condition that is true multiple times */) {
[cookieStorage deleteCookie:cookie];
}
}
这并不抛出异常,这意味着该cookie罐的枚举过程中的突变是安全的。我想知道的是,为什么?这是否总是安全的,还是由于某些可能改变的实现细节而变得安全?
在这里添加一个小细节 - 不仅是'setCookies:'不公开暴露,它实际上根本不存在。 'readonly'属性的setter不是由编译器合成的。 – 2014-10-29 18:28:42
@MorganChen你需要在运行时检查以确保它不存在;他们可能在类扩展中没有'readonly'重新声明。当然,或者只是自己写了二传手。但是,不,我不应该这样说,就好像我们知道制定者存在一样。 – Tommy 2014-10-29 19:04:57
好点@汤米,我的评论应该说“可能存在也可能不存在”。 – 2014-10-29 19:07:10