#[repr(C)]pub struct NSHTTPCookieStorage { /* private fields */ }
NSHTTPCookieStorage
only.Expand description
NSHTTPCookieStorage implements a singleton object (shared instance) which manages the shared cookie store. It has methods to allow clients to set and remove cookies, and get the current set of cookies. It also has convenience methods to parse and generate cookie-related HTTP header fields.
See also Apple’s documentation
Implementations§
Source§impl NSHTTPCookieStorage
impl NSHTTPCookieStorage
Get the shared cookie storage in the default location.
Returns: The shared cookie storage
Starting in OS X 10.11, each app has its own sharedHTTPCookieStorage singleton, which will not be shared with other applications.
Available on crate feature NSString
only.
NSString
only.Get the cookie storage for the container associated with the specified application group identifier
Parameter identifier
: The application group identifier
Returns: A cookie storage with a persistent store in the application group container
By default, applications and associated app extensions have different data containers, which means that the sharedHTTPCookieStorage singleton will refer to different persistent cookie stores in an application and any app extensions that it contains. This method allows clients to create a persistent cookie storage that can be shared among all applications and extensions with access to the same application group. Subsequent calls to this method with the same identifier will return the same cookie storage instance.
Available on crate features NSArray
and NSHTTPCookie
only.
NSArray
and NSHTTPCookie
only.Get all the cookies
Returns: An NSArray of NSHTTPCookies
Sourcepub unsafe fn setCookie(&self, cookie: &NSHTTPCookie)
Available on crate feature NSHTTPCookie
only.
pub unsafe fn setCookie(&self, cookie: &NSHTTPCookie)
NSHTTPCookie
only.Set a cookie
The cookie will override an existing cookie with the same name, domain and path, if any.
Sourcepub unsafe fn deleteCookie(&self, cookie: &NSHTTPCookie)
Available on crate feature NSHTTPCookie
only.
pub unsafe fn deleteCookie(&self, cookie: &NSHTTPCookie)
NSHTTPCookie
only.Delete the specified cookie
Sourcepub unsafe fn removeCookiesSinceDate(&self, date: &NSDate)
Available on crate feature NSDate
only.
pub unsafe fn removeCookiesSinceDate(&self, date: &NSDate)
NSDate
only.Delete all cookies from the cookie storage since the provided date.
Available on crate features NSArray
and NSHTTPCookie
and NSURL
only.
NSArray
and NSHTTPCookie
and NSURL
only.Returns an array of cookies to send to the given URL.
Parameter URL
: The URL for which to get cookies.
Returns: an NSArray of NSHTTPCookie objects.
The cookie manager examines the cookies it stores and includes those which should be sent to the given URL. You can use +[NSCookie requestHeaderFieldsWithCookies:] to turn this array into a set of header fields to add to a request.
Sourcepub unsafe fn setCookies_forURL_mainDocumentURL(
&self,
cookies: &NSArray<NSHTTPCookie>,
url: Option<&NSURL>,
main_document_url: Option<&NSURL>,
)
Available on crate features NSArray
and NSHTTPCookie
and NSURL
only.
pub unsafe fn setCookies_forURL_mainDocumentURL( &self, cookies: &NSArray<NSHTTPCookie>, url: Option<&NSURL>, main_document_url: Option<&NSURL>, )
NSArray
and NSHTTPCookie
and NSURL
only.Adds an array cookies to the cookie store, following the cookie accept policy.
Parameter cookies
: The cookies to set.
Parameter URL
: The URL from which the cookies were sent.
Parameter mainDocumentURL
: The main document URL to be used as a base for the “same
domain as main document” policy.
For mainDocumentURL, the caller should pass the URL for an appropriate main document, if known. For example, when loading a web page, the URL of the main html document for the top-level frame should be passed. To save cookies based on a set of response headers, you can use +[NSCookie cookiesWithResponseHeaderFields:forURL:] on a header field dictionary and then use this method to store the resulting cookies in accordance with policy settings.
The cookie accept policy preference of the receiver.
Sourcepub unsafe fn setCookieAcceptPolicy(
&self,
cookie_accept_policy: NSHTTPCookieAcceptPolicy,
)
pub unsafe fn setCookieAcceptPolicy( &self, cookie_accept_policy: NSHTTPCookieAcceptPolicy, )
Setter for cookieAcceptPolicy
.
Sourcepub unsafe fn sortedCookiesUsingDescriptors(
&self,
sort_order: &NSArray<NSSortDescriptor>,
) -> Retained<NSArray<NSHTTPCookie>>
Available on crate features NSArray
and NSHTTPCookie
and NSSortDescriptor
only.
pub unsafe fn sortedCookiesUsingDescriptors( &self, sort_order: &NSArray<NSSortDescriptor>, ) -> Retained<NSArray<NSHTTPCookie>>
NSArray
and NSHTTPCookie
and NSSortDescriptor
only.Returns an array of all cookies in the store, sorted according to the key value and sorting direction of the NSSortDescriptors specified in the parameter.
Parameter sortOrder
: an array of NSSortDescriptors which represent the preferred sort order of the resulting array.
proper sorting of cookies may require extensive string conversion, which can be avoided by allowing the system to perform the sorting. This API is to be preferred over the more generic -[NSHTTPCookieStorage cookies] API, if sorting is going to be performed.
Source§impl NSHTTPCookieStorage
Methods declared on superclass NSObject
.
impl NSHTTPCookieStorage
Methods declared on superclass NSObject
.
Source§impl NSHTTPCookieStorage
NSURLSessionTaskAdditions.
impl NSHTTPCookieStorage
NSURLSessionTaskAdditions.
pub unsafe fn storeCookies_forTask( &self, cookies: &NSArray<NSHTTPCookie>, task: &NSURLSessionTask, )
NSArray
and NSHTTPCookie
and NSURLSession
only.pub unsafe fn getCookiesForTask_completionHandler( &self, task: &NSURLSessionTask, completion_handler: &DynBlock<dyn Fn(*mut NSArray<NSHTTPCookie>)>, )
NSArray
and NSHTTPCookie
and NSURLSession
and block2
only.Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init
/new
methods).
§Example
Check that an instance of NSObject
has the precise class NSObject
.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());
Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load
instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load
instead.Use Ivar::load
instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T
.
See Ivar::load_ptr
for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T
.
This is the reference-variant. Use Retained::downcast
if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString
.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString
to a NSMutableString
,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass:
for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject
.
§Panics
This works internally by calling isKindOfClass:
. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject
and
NSProxy
implement this method.
§Examples
Cast an NSString
back and forth from NSObject
.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();
Try (and fail) to cast an NSObject
to an NSString
.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());
Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();
This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}
Trait Implementations§
Source§impl AsRef<AnyObject> for NSHTTPCookieStorage
impl AsRef<AnyObject> for NSHTTPCookieStorage
Source§impl AsRef<NSObject> for NSHTTPCookieStorage
impl AsRef<NSObject> for NSHTTPCookieStorage
Source§impl Borrow<AnyObject> for NSHTTPCookieStorage
impl Borrow<AnyObject> for NSHTTPCookieStorage
Source§impl Borrow<NSObject> for NSHTTPCookieStorage
impl Borrow<NSObject> for NSHTTPCookieStorage
Source§impl ClassType for NSHTTPCookieStorage
impl ClassType for NSHTTPCookieStorage
Source§const NAME: &'static str = "NSHTTPCookieStorage"
const NAME: &'static str = "NSHTTPCookieStorage"
Source§type ThreadKind = <<NSHTTPCookieStorage as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<NSHTTPCookieStorage as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for NSHTTPCookieStorage
impl Debug for NSHTTPCookieStorage
Source§impl Deref for NSHTTPCookieStorage
impl Deref for NSHTTPCookieStorage
Source§impl Hash for NSHTTPCookieStorage
impl Hash for NSHTTPCookieStorage
Source§impl Message for NSHTTPCookieStorage
impl Message for NSHTTPCookieStorage
Source§impl NSObjectProtocol for NSHTTPCookieStorage
impl NSObjectProtocol for NSHTTPCookieStorage
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass
directly, or cast your objects with AnyObject::downcast_ref