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