HTTPCookieStorage
A container that manages the storage of cookies.
Declaration
class HTTPCookieStorageOverview
Each stored cookie is represented by an instance of the HTTPCookie class.
Sharing cookie storage
The persistent cookie storage returned by shared may be available to app extensions or other apps, subject to the following guidelines:
iOS — Each app and app extension has a unique data container, meaning they have separate cookie stores. You can obtain a common cookie storage by using the sharedCookieStorage(forGroupContainerIdentifier:) method.
macOS (non-sandboxed) — As of macOS 10.11, each app has its own cookie storage. Prior to macOS 10.11, a common cookie store is shared among the user’s apps.
macOS (sandboxed) — Same as iOS.
UIWebView —
UIWebViewinstances within an app inherit the parent app’s shared cookie storage.WKWebView — Each
WKWebViewinstance has its own cookie storage. See the WKHTTPCookieStore class for more information.
Session cookies (where the cookie object’s isSessionOnly property is true) are local to a single process and are not shared.
Subclassing notes
The HTTPCookieStorage class is usable as-is, but you can subclass it. For example, you can override the storage methods like storeCookies(_:for:), getCookiesFor(_:completionHandler:) to screen which cookies are stored, or reimplement the storage mechanism for security or other reasons.
When overriding methods of this class, be aware that methods that take a task parameter are preferred by the system to equivalent methods that do not. Therefore, you should override the task-based methods when subclassing, as follows:
Retrieving cookies — Override getCookiesFor(_:completionHandler:), instead of or in addition to cookies(for:).
Adding cookies — Override storeCookies(_:for:), instead of or in addition to setCookies(_:for:mainDocumentURL:).
Topics
Getting the shared cookie storage object
Getting and setting the cookie accept policy
Adding and removing cookies
removeCookies(since:)deleteCookie(_:)setCookie(_:)setCookies(_:for:mainDocumentURL:)storeCookies(_:for:)