关于 NSHTTPCookieStorage 的 cookie 接受策略的 Apple 文档令人困惑。
这就是文档所说的:
NSHTTPCookieStorage 实现了一个管理 cookie 存储的单例对象(共享实例)。每个 cookie 都由 NSHTTPCookie 类的一个实例表示。通常,cookie 在所有应用程序之间共享,并且跨进程边界保持同步。会话 cookie(cookie 对象的 isSessionOnly 方法返回 YES)对于单个进程是本地的,并且不共享。
iOS 注意: Cookie 不会在 iOS 中的应用程序之间共享。
注意:对 cookie 接受策略所做的更改会影响所有当前正在运行的使用 cookie 存储的应用程序。
以下关于 - (void)setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)aPolicy
默认的 cookie 接受策略是 NSHTTPCookieAcceptPolicyAlways。更改 cookie 策略会影响所有当前运行的使用 cookie 存储的应用程序。
现在我的第一个想法是如果一个应用程序要调用 setCookieAcceptPolicy,这个更改会影响其他正在运行的应用程序。情况似乎并非如此。调用 setCookieAcceptPolicy 只会影响调用它的应用程序。
适用于所有正在运行的应用程序的唯一 cookie 策略是 Safari 策略。在 iOS 7 中,在应用调用 setCookieAcceptPolicy 之前,它使用 safari 策略。因此,如果将 safari cookie 策略设置为始终阻止,那么任何应用程序都将无法使用 cookie,直到它设置自己的 cookie 策略。据我了解,自从 iOS 7 推出以来,这已经给很多应用程序带来了问题。
我对这一切的观察是否正确,还是我错过了什么?
编辑
我已经向 Apple 提出了一个错误,现在正在等待他们的回复。