pub struct NSURLComponents { /* private fields */ }NSURL only.Expand description
Implementations§
Source§impl NSURLComponents
impl NSURLComponents
pub fn init(this: Allocated<Self>) -> Retained<Self>
pub fn initWithURL_resolvingAgainstBaseURL( this: Allocated<Self>, url: &NSURL, resolve: bool, ) -> Option<Retained<Self>>
pub fn componentsWithURL_resolvingAgainstBaseURL( url: &NSURL, resolve: bool, ) -> Option<Retained<Self>>
pub fn initWithString( this: Allocated<Self>, url_string: &NSString, ) -> Option<Retained<Self>>
NSString only.pub fn componentsWithString(url_string: &NSString) -> Option<Retained<Self>>
NSString only.Sourcepub fn initWithString_encodingInvalidCharacters(
this: Allocated<Self>,
url_string: &NSString,
encoding_invalid_characters: bool,
) -> Option<Retained<Self>>
Available on crate feature NSString only.
pub fn initWithString_encodingInvalidCharacters( this: Allocated<Self>, url_string: &NSString, encoding_invalid_characters: bool, ) -> Option<Retained<Self>>
NSString only.Initializes an NSURLComponents with a URL string and the option to add (or skip) IDNA- and percent-encoding of invalid characters.
If encodingInvalidCharacters is false, and the URL string is invalid according to RFC 3986, nil is returned.
If encodingInvalidCharacters is true, NSURLComponents will try to encode the string to create a valid URL.
If the URL string is still invalid after encoding, nil is returned.
- Parameter URLString: The URL string.
- Parameter encodingInvalidCharacters: True if
NSURLComponentsshould try to encode an invalid URL string, false otherwise. - Returns: An
NSURLComponentsinstance for a valid URL, ornilif the URL is invalid.
Sourcepub fn componentsWithString_encodingInvalidCharacters(
url_string: &NSString,
encoding_invalid_characters: bool,
) -> Option<Retained<Self>>
Available on crate feature NSString only.
pub fn componentsWithString_encodingInvalidCharacters( url_string: &NSString, encoding_invalid_characters: bool, ) -> Option<Retained<Self>>
NSString only.Initializes and returns a newly created NSURLComponents with a URL string and the option to add (or skip) IDNA- and percent-encoding of invalid characters.
If encodingInvalidCharacters is false, and the URL string is invalid according to RFC 3986, nil is returned.
If encodingInvalidCharacters is true, NSURLComponents will try to encode the string to create a valid URL.
If the URL string is still invalid after encoding, nil is returned.
- Parameter URLString: The URL string.
- Parameter encodingInvalidCharacters: True if
NSURLComponentsshould try to encode an invalid URL string, false otherwise. - Returns: An
NSURLComponentsinstance for a valid URL, ornilif the URL is invalid.
pub fn URL(&self) -> Option<Retained<NSURL>>
pub fn URLRelativeToURL( &self, base_url: Option<&NSURL>, ) -> Option<Retained<NSURL>>
pub fn string(&self) -> Option<Retained<NSString>>
NSString only.pub fn scheme(&self) -> Option<Retained<NSString>>
NSString only.pub fn user(&self) -> Option<Retained<NSString>>
NSString only.pub fn password(&self) -> Option<Retained<NSString>>
NSString only.Sourcepub fn setPassword(&self, password: Option<&NSString>)
Available on crate feature NSString only.
pub fn setPassword(&self, password: Option<&NSString>)
NSString only.pub fn host(&self) -> Option<Retained<NSString>>
NSString only.pub fn port(&self) -> Option<Retained<NSNumber>>
NSValue only.pub fn path(&self) -> Option<Retained<NSString>>
NSString only.pub fn query(&self) -> Option<Retained<NSString>>
NSString only.pub fn fragment(&self) -> Option<Retained<NSString>>
NSString only.Sourcepub fn setFragment(&self, fragment: Option<&NSString>)
Available on crate feature NSString only.
pub fn setFragment(&self, fragment: Option<&NSString>)
NSString only.pub fn percentEncodedUser(&self) -> Option<Retained<NSString>>
NSString only.Sourcepub fn setPercentEncodedUser(&self, percent_encoded_user: Option<&NSString>)
Available on crate feature NSString only.
pub fn setPercentEncodedUser(&self, percent_encoded_user: Option<&NSString>)
NSString only.Setter for percentEncodedUser.
This is copied when set.
pub fn percentEncodedPassword(&self) -> Option<Retained<NSString>>
NSString only.Sourcepub fn setPercentEncodedPassword(
&self,
percent_encoded_password: Option<&NSString>,
)
Available on crate feature NSString only.
pub fn setPercentEncodedPassword( &self, percent_encoded_password: Option<&NSString>, )
NSString only.Setter for percentEncodedPassword.
This is copied when set.
pub fn percentEncodedHost(&self) -> Option<Retained<NSString>>
NSString only.Sourcepub fn setPercentEncodedHost(&self, percent_encoded_host: Option<&NSString>)
👎Deprecated: Use encodedHost insteadAvailable on crate feature NSString only.
pub fn setPercentEncodedHost(&self, percent_encoded_host: Option<&NSString>)
NSString only.Setter for percentEncodedHost.
This is copied when set.
pub fn percentEncodedPath(&self) -> Option<Retained<NSString>>
NSString only.Sourcepub fn setPercentEncodedPath(&self, percent_encoded_path: Option<&NSString>)
Available on crate feature NSString only.
pub fn setPercentEncodedPath(&self, percent_encoded_path: Option<&NSString>)
NSString only.Setter for percentEncodedPath.
This is copied when set.
pub fn percentEncodedQuery(&self) -> Option<Retained<NSString>>
NSString only.Sourcepub fn setPercentEncodedQuery(&self, percent_encoded_query: Option<&NSString>)
Available on crate feature NSString only.
pub fn setPercentEncodedQuery(&self, percent_encoded_query: Option<&NSString>)
NSString only.Setter for percentEncodedQuery.
This is copied when set.
pub fn percentEncodedFragment(&self) -> Option<Retained<NSString>>
NSString only.Sourcepub fn setPercentEncodedFragment(
&self,
percent_encoded_fragment: Option<&NSString>,
)
Available on crate feature NSString only.
pub fn setPercentEncodedFragment( &self, percent_encoded_fragment: Option<&NSString>, )
NSString only.Setter for percentEncodedFragment.
This is copied when set.
pub fn encodedHost(&self) -> Option<Retained<NSString>>
NSString only.Sourcepub fn setEncodedHost(&self, encoded_host: Option<&NSString>)
Available on crate feature NSString only.
pub fn setEncodedHost(&self, encoded_host: Option<&NSString>)
NSString only.Setter for encodedHost.
This is copied when set.
pub fn rangeOfScheme(&self) -> NSRange
NSRange only.pub fn rangeOfUser(&self) -> NSRange
NSRange only.pub fn rangeOfPassword(&self) -> NSRange
NSRange only.pub fn rangeOfHost(&self) -> NSRange
NSRange only.pub fn rangeOfPort(&self) -> NSRange
NSRange only.pub fn rangeOfPath(&self) -> NSRange
NSRange only.pub fn rangeOfQuery(&self) -> NSRange
NSRange only.pub fn rangeOfFragment(&self) -> NSRange
NSRange only.pub fn queryItems(&self) -> Option<Retained<NSArray<NSURLQueryItem>>>
NSArray only.Sourcepub fn setQueryItems(&self, query_items: Option<&NSArray<NSURLQueryItem>>)
Available on crate feature NSArray only.
pub fn setQueryItems(&self, query_items: Option<&NSArray<NSURLQueryItem>>)
NSArray only.Setter for queryItems.
This is copied when set.
pub fn percentEncodedQueryItems( &self, ) -> Option<Retained<NSArray<NSURLQueryItem>>>
NSArray only.Sourcepub fn setPercentEncodedQueryItems(
&self,
percent_encoded_query_items: Option<&NSArray<NSURLQueryItem>>,
)
Available on crate feature NSArray only.
pub fn setPercentEncodedQueryItems( &self, percent_encoded_query_items: Option<&NSArray<NSURLQueryItem>>, )
NSArray only.Setter for percentEncodedQueryItems.
This is copied when set.
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 NSURLComponents
impl AsRef<AnyObject> for NSURLComponents
Source§impl AsRef<NSObject> for NSURLComponents
impl AsRef<NSObject> for NSURLComponents
Source§impl AsRef<NSURLComponents> for NSURLComponents
impl AsRef<NSURLComponents> for NSURLComponents
Source§impl Borrow<AnyObject> for NSURLComponents
impl Borrow<AnyObject> for NSURLComponents
Source§impl Borrow<NSObject> for NSURLComponents
impl Borrow<NSObject> for NSURLComponents
Source§impl ClassType for NSURLComponents
impl ClassType for NSURLComponents
Source§const NAME: &'static str = "NSURLComponents"
const NAME: &'static str = "NSURLComponents"
Source§type ThreadKind = <<NSURLComponents as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<NSURLComponents as ClassType>::Super as ClassType>::ThreadKind
Source§impl CopyingHelper for NSURLComponents
Available on crate feature NSObject only.
impl CopyingHelper for NSURLComponents
NSObject only.Source§type Result = NSURLComponents
type Result = NSURLComponents
Self if the type has no
immutable counterpart. Read moreSource§impl Debug for NSURLComponents
impl Debug for NSURLComponents
Source§impl DefaultRetained for NSURLComponents
impl DefaultRetained for NSURLComponents
Source§impl Deref for NSURLComponents
impl Deref for NSURLComponents
Source§impl Hash for NSURLComponents
impl Hash for NSURLComponents
Source§impl Message for NSURLComponents
impl Message for NSURLComponents
Source§impl NSCopying for NSURLComponents
impl NSCopying for NSURLComponents
Source§impl NSObjectProtocol for NSURLComponents
impl NSObjectProtocol for NSURLComponents
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