#[repr(C)]pub struct NSString { /* private fields */ }
NSString
only.Expand description
Implementations§
Source§impl NSString
NSBundleExtensionMethods.
impl NSString
NSBundleExtensionMethods.
pub unsafe fn variantFittingPresentationWidth( &self, width: NSInteger, ) -> Retained<NSString>
NSBundle
only.Source§impl NSString
impl NSString
pub unsafe fn from_point(a_point: NSPoint) -> Retained<NSString>
NSGeometry
and objc2-core-foundation
only.pub unsafe fn from_size(a_size: NSSize) -> Retained<NSString>
NSGeometry
and objc2-core-foundation
only.pub unsafe fn from_rect(a_rect: NSRect) -> Retained<NSString>
NSGeometry
and objc2-core-foundation
only.Source§impl NSString
impl NSString
pub unsafe fn from_hash_table(table: &NSHashTable) -> Retained<NSString>
NSHashTable
only.Source§impl NSString
NSLinguisticAnalysis.
impl NSString
NSLinguisticAnalysis.
pub unsafe fn linguisticTagsInRange_scheme_options_orthography_tokenRanges( &self, range: NSRange, scheme: &NSLinguisticTagScheme, options: NSLinguisticTaggerOptions, orthography: Option<&NSOrthography>, token_ranges: Option<&mut Option<Retained<NSArray<NSValue>>>>, ) -> Retained<NSArray<NSLinguisticTag>>
NSLinguisticTagger
and NSArray
and NSOrthography
and NSRange
and NSValue
only.pub unsafe fn enumerateLinguisticTagsInRange_scheme_options_orthography_usingBlock( &self, range: NSRange, scheme: &NSLinguisticTagScheme, options: NSLinguisticTaggerOptions, orthography: Option<&NSOrthography>, block: &DynBlock<dyn Fn(*mut NSLinguisticTag, NSRange, NSRange, NonNull<Bool>) + '_>, )
NSLinguisticTagger
and NSOrthography
and NSRange
and block2
only.Source§impl NSString
impl NSString
pub unsafe fn from_map_table(table: &NSMapTable) -> Retained<NSString>
NSMapTable
only.Source§impl NSString
impl NSString
pub unsafe fn from_selector(a_selector: Sel) -> Retained<NSString>
NSObjCRuntime
only.Source§impl NSString
impl NSString
pub fn from_class(a_class: &AnyClass) -> Retained<NSString>
NSObjCRuntime
only.Source§impl NSString
impl NSString
pub unsafe fn from_protocol(proto: &AnyProtocol) -> Retained<NSString>
NSObjCRuntime
only.Source§impl NSString
NSStringPathExtensions.
impl NSString
NSStringPathExtensions.
pub unsafe fn pathWithComponents( components: &NSArray<NSString>, ) -> Retained<NSString>
NSPathUtilities
and NSArray
only.pub unsafe fn pathComponents(&self) -> Retained<NSArray<NSString>>
NSPathUtilities
and NSArray
only.pub unsafe fn isAbsolutePath(&self) -> bool
NSPathUtilities
only.pub unsafe fn lastPathComponent(&self) -> Retained<NSString>
NSPathUtilities
only.pub unsafe fn stringByDeletingLastPathComponent(&self) -> Retained<NSString>
NSPathUtilities
only.pub fn stringByAppendingPathComponent( &self, str: &NSString, ) -> Retained<NSString>
NSPathUtilities
only.pub unsafe fn pathExtension(&self) -> Retained<NSString>
NSPathUtilities
only.pub unsafe fn stringByDeletingPathExtension(&self) -> Retained<NSString>
NSPathUtilities
only.pub unsafe fn stringByAppendingPathExtension( &self, str: &NSString, ) -> Option<Retained<NSString>>
NSPathUtilities
only.pub unsafe fn stringByAbbreviatingWithTildeInPath(&self) -> Retained<NSString>
NSPathUtilities
only.pub unsafe fn stringByExpandingTildeInPath(&self) -> Retained<NSString>
NSPathUtilities
only.pub unsafe fn stringByStandardizingPath(&self) -> Retained<NSString>
NSPathUtilities
only.pub unsafe fn stringByResolvingSymlinksInPath(&self) -> Retained<NSString>
NSPathUtilities
only.pub unsafe fn stringsByAppendingPaths( &self, paths: &NSArray<NSString>, ) -> Retained<NSArray<NSString>>
NSPathUtilities
and NSArray
only.pub unsafe fn completePathIntoString_caseSensitive_matchesIntoArray_filterTypes( &self, output_name: Option<&mut Option<Retained<NSString>>>, flag: bool, output_array: Option<&mut Option<Retained<NSArray<NSString>>>>, filter_types: Option<&NSArray<NSString>>, ) -> NSUInteger
NSPathUtilities
and NSArray
only.pub unsafe fn fileSystemRepresentation(&self) -> NonNull<c_char>
NSPathUtilities
only.pub unsafe fn getFileSystemRepresentation_maxLength( &self, cname: NonNull<c_char>, max: NSUInteger, ) -> bool
NSPathUtilities
only.Source§impl NSString
impl NSString
pub unsafe fn from_range(range: NSRange) -> Retained<NSString>
NSRange
only.Source§impl NSString
impl NSString
pub fn length(&self) -> NSUInteger
pub unsafe fn characterAtIndex(&self, index: NSUInteger) -> unichar
pub fn init(this: Allocated<Self>) -> Retained<Self>
pub unsafe fn initWithCoder( this: Allocated<Self>, coder: &NSCoder, ) -> Option<Retained<Self>>
NSCoder
only.Source§impl NSString
NSStringExtensionMethods.
impl NSString
NSStringExtensionMethods.
pub unsafe fn substringFromIndex(&self, from: NSUInteger) -> Retained<NSString>
pub unsafe fn substringToIndex(&self, to: NSUInteger) -> Retained<NSString>
pub unsafe fn substringWithRange(&self, range: NSRange) -> Retained<NSString>
NSRange
only.pub unsafe fn getCharacters_range( &self, buffer: NonNull<unichar>, range: NSRange, )
NSRange
only.pub fn compare(&self, string: &NSString) -> NSComparisonResult
NSObjCRuntime
only.pub unsafe fn compare_options( &self, string: &NSString, mask: NSStringCompareOptions, ) -> NSComparisonResult
NSObjCRuntime
only.pub unsafe fn compare_options_range( &self, string: &NSString, mask: NSStringCompareOptions, range_of_receiver_to_compare: NSRange, ) -> NSComparisonResult
NSObjCRuntime
and NSRange
only.pub unsafe fn compare_options_range_locale( &self, string: &NSString, mask: NSStringCompareOptions, range_of_receiver_to_compare: NSRange, locale: Option<&AnyObject>, ) -> NSComparisonResult
NSObjCRuntime
and NSRange
only.pub unsafe fn caseInsensitiveCompare( &self, string: &NSString, ) -> NSComparisonResult
NSObjCRuntime
only.pub unsafe fn localizedCompare(&self, string: &NSString) -> NSComparisonResult
NSObjCRuntime
only.pub unsafe fn localizedCaseInsensitiveCompare( &self, string: &NSString, ) -> NSComparisonResult
NSObjCRuntime
only.pub unsafe fn localizedStandardCompare( &self, string: &NSString, ) -> NSComparisonResult
NSObjCRuntime
only.pub unsafe fn isEqualToString(&self, a_string: &NSString) -> bool
pub fn hasPrefix(&self, str: &NSString) -> bool
pub fn hasSuffix(&self, str: &NSString) -> bool
pub unsafe fn commonPrefixWithString_options( &self, str: &NSString, mask: NSStringCompareOptions, ) -> Retained<NSString>
pub unsafe fn containsString(&self, str: &NSString) -> bool
pub unsafe fn localizedCaseInsensitiveContainsString( &self, str: &NSString, ) -> bool
pub unsafe fn localizedStandardContainsString(&self, str: &NSString) -> bool
pub unsafe fn localizedStandardRangeOfString(&self, str: &NSString) -> NSRange
NSRange
only.pub unsafe fn rangeOfString(&self, search_string: &NSString) -> NSRange
NSRange
only.pub unsafe fn rangeOfString_options( &self, search_string: &NSString, mask: NSStringCompareOptions, ) -> NSRange
NSRange
only.pub unsafe fn rangeOfString_options_range( &self, search_string: &NSString, mask: NSStringCompareOptions, range_of_receiver_to_search: NSRange, ) -> NSRange
NSRange
only.pub unsafe fn rangeOfString_options_range_locale( &self, search_string: &NSString, mask: NSStringCompareOptions, range_of_receiver_to_search: NSRange, locale: Option<&NSLocale>, ) -> NSRange
NSLocale
and NSRange
only.pub unsafe fn rangeOfCharacterFromSet( &self, search_set: &NSCharacterSet, ) -> NSRange
NSCharacterSet
and NSRange
only.pub unsafe fn rangeOfCharacterFromSet_options( &self, search_set: &NSCharacterSet, mask: NSStringCompareOptions, ) -> NSRange
NSCharacterSet
and NSRange
only.pub unsafe fn rangeOfCharacterFromSet_options_range( &self, search_set: &NSCharacterSet, mask: NSStringCompareOptions, range_of_receiver_to_search: NSRange, ) -> NSRange
NSCharacterSet
and NSRange
only.pub unsafe fn rangeOfComposedCharacterSequenceAtIndex( &self, index: NSUInteger, ) -> NSRange
NSRange
only.pub unsafe fn rangeOfComposedCharacterSequencesForRange( &self, range: NSRange, ) -> NSRange
NSRange
only.pub fn stringByAppendingString(&self, a_string: &NSString) -> Retained<NSString>
pub unsafe fn doubleValue(&self) -> c_double
pub unsafe fn floatValue(&self) -> c_float
pub unsafe fn intValue(&self) -> c_int
pub unsafe fn integerValue(&self) -> NSInteger
pub unsafe fn longLongValue(&self) -> c_longlong
pub unsafe fn boolValue(&self) -> bool
pub unsafe fn uppercaseString(&self) -> Retained<NSString>
pub unsafe fn lowercaseString(&self) -> Retained<NSString>
pub unsafe fn capitalizedString(&self) -> Retained<NSString>
pub unsafe fn localizedUppercaseString(&self) -> Retained<NSString>
pub unsafe fn localizedLowercaseString(&self) -> Retained<NSString>
pub unsafe fn localizedCapitalizedString(&self) -> Retained<NSString>
pub unsafe fn uppercaseStringWithLocale( &self, locale: Option<&NSLocale>, ) -> Retained<NSString>
NSLocale
only.pub unsafe fn lowercaseStringWithLocale( &self, locale: Option<&NSLocale>, ) -> Retained<NSString>
NSLocale
only.pub unsafe fn capitalizedStringWithLocale( &self, locale: Option<&NSLocale>, ) -> Retained<NSString>
NSLocale
only.pub unsafe fn getLineStart_end_contentsEnd_forRange( &self, start_ptr: *mut NSUInteger, line_end_ptr: *mut NSUInteger, contents_end_ptr: *mut NSUInteger, range: NSRange, )
NSRange
only.pub unsafe fn lineRangeForRange(&self, range: NSRange) -> NSRange
NSRange
only.pub unsafe fn getParagraphStart_end_contentsEnd_forRange( &self, start_ptr: *mut NSUInteger, par_end_ptr: *mut NSUInteger, contents_end_ptr: *mut NSUInteger, range: NSRange, )
NSRange
only.pub unsafe fn paragraphRangeForRange(&self, range: NSRange) -> NSRange
NSRange
only.pub unsafe fn enumerateSubstringsInRange_options_usingBlock( &self, range: NSRange, opts: NSStringEnumerationOptions, block: &DynBlock<dyn Fn(*mut NSString, NSRange, NSRange, NonNull<Bool>)>, )
NSRange
and block2
only.pub unsafe fn enumerateLinesUsingBlock( &self, block: &DynBlock<dyn Fn(NonNull<NSString>, NonNull<Bool>)>, )
block2
only.pub fn UTF8String(&self) -> *const c_char
pub unsafe fn fastestEncoding(&self) -> NSStringEncoding
pub unsafe fn smallestEncoding(&self) -> NSStringEncoding
pub unsafe fn dataUsingEncoding_allowLossyConversion( &self, encoding: NSStringEncoding, lossy: bool, ) -> Option<Retained<NSData>>
NSData
only.pub unsafe fn dataUsingEncoding( &self, encoding: NSStringEncoding, ) -> Option<Retained<NSData>>
NSData
only.pub unsafe fn canBeConvertedToEncoding( &self, encoding: NSStringEncoding, ) -> bool
pub unsafe fn cStringUsingEncoding( &self, encoding: NSStringEncoding, ) -> *const c_char
pub unsafe fn getCString_maxLength_encoding( &self, buffer: NonNull<c_char>, max_buffer_count: NSUInteger, encoding: NSStringEncoding, ) -> bool
pub unsafe fn getBytes_maxLength_usedLength_encoding_options_range_remainingRange( &self, buffer: *mut c_void, max_buffer_count: NSUInteger, used_buffer_count: *mut NSUInteger, encoding: NSStringEncoding, options: NSStringEncodingConversionOptions, range: NSRange, leftover: NSRangePointer, ) -> bool
NSRange
only.pub unsafe fn maximumLengthOfBytesUsingEncoding( &self, enc: NSStringEncoding, ) -> NSUInteger
pub fn lengthOfBytesUsingEncoding(&self, enc: NSStringEncoding) -> NSUInteger
pub unsafe fn availableStringEncodings() -> NonNull<NSStringEncoding>
pub unsafe fn localizedNameOfStringEncoding( encoding: NSStringEncoding, ) -> Retained<NSString>
pub unsafe fn defaultCStringEncoding() -> NSStringEncoding
pub unsafe fn decomposedStringWithCanonicalMapping(&self) -> Retained<NSString>
pub unsafe fn precomposedStringWithCanonicalMapping(&self) -> Retained<NSString>
pub unsafe fn decomposedStringWithCompatibilityMapping( &self, ) -> Retained<NSString>
pub unsafe fn precomposedStringWithCompatibilityMapping( &self, ) -> Retained<NSString>
pub unsafe fn componentsSeparatedByString( &self, separator: &NSString, ) -> Retained<NSArray<NSString>>
NSArray
only.pub unsafe fn componentsSeparatedByCharactersInSet( &self, separator: &NSCharacterSet, ) -> Retained<NSArray<NSString>>
NSArray
and NSCharacterSet
only.pub unsafe fn stringByTrimmingCharactersInSet( &self, set: &NSCharacterSet, ) -> Retained<NSString>
NSCharacterSet
only.pub unsafe fn stringByPaddingToLength_withString_startingAtIndex( &self, new_length: NSUInteger, pad_string: &NSString, pad_index: NSUInteger, ) -> Retained<NSString>
pub unsafe fn stringByFoldingWithOptions_locale( &self, options: NSStringCompareOptions, locale: Option<&NSLocale>, ) -> Retained<NSString>
NSLocale
only.pub unsafe fn stringByReplacingOccurrencesOfString_withString_options_range( &self, target: &NSString, replacement: &NSString, options: NSStringCompareOptions, search_range: NSRange, ) -> Retained<NSString>
NSRange
only.pub unsafe fn stringByReplacingOccurrencesOfString_withString( &self, target: &NSString, replacement: &NSString, ) -> Retained<NSString>
pub unsafe fn stringByReplacingCharactersInRange_withString( &self, range: NSRange, replacement: &NSString, ) -> Retained<NSString>
NSRange
only.pub unsafe fn stringByApplyingTransform_reverse( &self, transform: &NSStringTransform, reverse: bool, ) -> Option<Retained<NSString>>
pub unsafe fn writeToURL_atomically_encoding_error( &self, url: &NSURL, use_auxiliary_file: bool, enc: NSStringEncoding, ) -> Result<(), Retained<NSError>>
NSError
and NSURL
only.pub unsafe fn writeToFile_atomically_encoding_error( &self, path: &NSString, use_auxiliary_file: bool, enc: NSStringEncoding, ) -> Result<(), Retained<NSError>>
NSError
only.pub unsafe fn description(&self) -> Retained<NSString>
pub unsafe fn hash(&self) -> NSUInteger
pub unsafe fn initWithCharactersNoCopy_length_freeWhenDone( this: Allocated<Self>, characters: NonNull<unichar>, length: NSUInteger, free_buffer: bool, ) -> Retained<Self>
pub unsafe fn initWithCharactersNoCopy_length_deallocator( this: Allocated<Self>, chars: NonNull<unichar>, len: NSUInteger, deallocator: Option<&DynBlock<dyn Fn(NonNull<unichar>, NSUInteger)>>, ) -> Retained<Self>
block2
only.pub unsafe fn initWithCharacters_length( this: Allocated<Self>, characters: NonNull<unichar>, length: NSUInteger, ) -> Retained<Self>
pub unsafe fn initWithUTF8String( this: Allocated<Self>, null_terminated_c_string: NonNull<c_char>, ) -> Option<Retained<Self>>
pub fn initWithString( this: Allocated<Self>, a_string: &NSString, ) -> Retained<Self>
pub unsafe fn initWithData_encoding( this: Allocated<Self>, data: &NSData, encoding: NSStringEncoding, ) -> Option<Retained<Self>>
NSData
only.pub unsafe fn initWithBytes_length_encoding( this: Allocated<Self>, bytes: NonNull<c_void>, len: NSUInteger, encoding: NSStringEncoding, ) -> Option<Retained<Self>>
pub unsafe fn initWithBytesNoCopy_length_encoding_freeWhenDone( this: Allocated<Self>, bytes: NonNull<c_void>, len: NSUInteger, encoding: NSStringEncoding, free_buffer: bool, ) -> Option<Retained<Self>>
pub unsafe fn initWithBytesNoCopy_length_encoding_deallocator( this: Allocated<Self>, bytes: NonNull<c_void>, len: NSUInteger, encoding: NSStringEncoding, deallocator: Option<&DynBlock<dyn Fn(NonNull<c_void>, NSUInteger)>>, ) -> Option<Retained<Self>>
block2
only.pub unsafe fn string() -> Retained<Self>
pub fn stringWithString(string: &NSString) -> Retained<Self>
pub unsafe fn stringWithCharacters_length( characters: NonNull<unichar>, length: NSUInteger, ) -> Retained<Self>
pub unsafe fn stringWithUTF8String( null_terminated_c_string: NonNull<c_char>, ) -> Option<Retained<Self>>
pub unsafe fn initWithCString_encoding( this: Allocated<Self>, null_terminated_c_string: NonNull<c_char>, encoding: NSStringEncoding, ) -> Option<Retained<Self>>
pub unsafe fn stringWithCString_encoding( c_string: NonNull<c_char>, enc: NSStringEncoding, ) -> Option<Retained<Self>>
pub unsafe fn initWithContentsOfURL_encoding_error( this: Allocated<Self>, url: &NSURL, enc: NSStringEncoding, ) -> Result<Retained<Self>, Retained<NSError>>
NSError
and NSURL
only.pub unsafe fn initWithContentsOfFile_encoding_error( this: Allocated<Self>, path: &NSString, enc: NSStringEncoding, ) -> Result<Retained<Self>, Retained<NSError>>
NSError
only.pub unsafe fn stringWithContentsOfURL_encoding_error( url: &NSURL, enc: NSStringEncoding, ) -> Result<Retained<Self>, Retained<NSError>>
NSError
and NSURL
only.pub unsafe fn stringWithContentsOfFile_encoding_error( path: &NSString, enc: NSStringEncoding, ) -> Result<Retained<Self>, Retained<NSError>>
NSError
only.pub unsafe fn initWithContentsOfURL_usedEncoding_error( this: Allocated<Self>, url: &NSURL, enc: *mut NSStringEncoding, ) -> Result<Retained<Self>, Retained<NSError>>
NSError
and NSURL
only.pub unsafe fn initWithContentsOfFile_usedEncoding_error( this: Allocated<Self>, path: &NSString, enc: *mut NSStringEncoding, ) -> Result<Retained<Self>, Retained<NSError>>
NSError
only.pub unsafe fn stringWithContentsOfURL_usedEncoding_error( url: &NSURL, enc: *mut NSStringEncoding, ) -> Result<Retained<Self>, Retained<NSError>>
NSError
and NSURL
only.pub unsafe fn stringWithContentsOfFile_usedEncoding_error( path: &NSString, enc: *mut NSStringEncoding, ) -> Result<Retained<Self>, Retained<NSError>>
NSError
only.Source§impl NSString
NSStringEncodingDetection.
impl NSString
NSStringEncodingDetection.
pub unsafe fn stringEncodingForData_encodingOptions_convertedString_usedLossyConversion( data: &NSData, opts: Option<&NSDictionary<NSStringEncodingDetectionOptionsKey, AnyObject>>, string: Option<&mut Option<Retained<NSString>>>, used_lossy_conversion: *mut Bool, ) -> NSStringEncoding
NSData
and NSDictionary
only.impl NSString
NSItemProvider.
Source§impl NSString
NSExtendedStringPropertyListParsing.
impl NSString
NSExtendedStringPropertyListParsing.
pub unsafe fn propertyList(&self) -> Retained<AnyObject>
pub unsafe fn propertyListFromStringsFileFormat( &self, ) -> Option<Retained<NSDictionary>>
NSDictionary
only.Source§impl NSString
NSStringDeprecated.
impl NSString
NSStringDeprecated.
pub unsafe fn cString(&self) -> *const c_char
pub unsafe fn lossyCString(&self) -> *const c_char
pub unsafe fn cStringLength(&self) -> NSUInteger
pub unsafe fn getCString(&self, bytes: NonNull<c_char>)
pub unsafe fn getCString_maxLength( &self, bytes: NonNull<c_char>, max_length: NSUInteger, )
pub unsafe fn getCString_maxLength_range_remainingRange( &self, bytes: NonNull<c_char>, max_length: NSUInteger, a_range: NSRange, leftover_range: NSRangePointer, )
NSRange
only.pub unsafe fn writeToFile_atomically( &self, path: &NSString, use_auxiliary_file: bool, ) -> bool
pub unsafe fn writeToURL_atomically( &self, url: &NSURL, atomically: bool, ) -> bool
NSURL
only.pub unsafe fn initWithContentsOfFile( this: Allocated<Self>, path: &NSString, ) -> Option<Retained<Self>>
pub unsafe fn initWithContentsOfURL( this: Allocated<Self>, url: &NSURL, ) -> Option<Retained<Self>>
NSURL
only.pub unsafe fn stringWithContentsOfFile( path: &NSString, ) -> Option<Retained<AnyObject>>
pub unsafe fn stringWithContentsOfURL( url: &NSURL, ) -> Option<Retained<AnyObject>>
NSURL
only.pub unsafe fn initWithCStringNoCopy_length_freeWhenDone( this: Allocated<Self>, bytes: NonNull<c_char>, length: NSUInteger, free_buffer: bool, ) -> Option<Retained<Self>>
pub unsafe fn initWithCString_length( this: Allocated<Self>, bytes: NonNull<c_char>, length: NSUInteger, ) -> Option<Retained<Self>>
pub unsafe fn initWithCString( this: Allocated<Self>, bytes: NonNull<c_char>, ) -> Option<Retained<Self>>
pub unsafe fn stringWithCString_length( bytes: NonNull<c_char>, length: NSUInteger, ) -> Option<Retained<AnyObject>>
pub unsafe fn stringWithCString( bytes: NonNull<c_char>, ) -> Option<Retained<AnyObject>>
pub unsafe fn getCharacters(&self, buffer: NonNull<unichar>)
Source§impl NSString
NSURLUtilities.
impl NSString
NSURLUtilities.
pub unsafe fn stringByAddingPercentEncodingWithAllowedCharacters( &self, allowed_characters: &NSCharacterSet, ) -> Option<Retained<NSString>>
NSURL
and NSCharacterSet
only.pub unsafe fn stringByRemovingPercentEncoding( &self, ) -> Option<Retained<NSString>>
NSURL
only.pub unsafe fn stringByAddingPercentEscapesUsingEncoding( &self, enc: NSStringEncoding, ) -> Option<Retained<NSString>>
NSURL
only.pub unsafe fn stringByReplacingPercentEscapesUsingEncoding( &self, enc: NSStringEncoding, ) -> Option<Retained<NSString>>
NSURL
only.Source§impl NSString
impl NSString
Sourcepub fn len_utf16(&self) -> usize
pub fn len_utf16(&self) -> usize
The number of UTF-16 code units in the string.
See also NSString::len
.
pub fn is_empty(&self) -> bool
Sourcepub unsafe fn to_str<'r, 's: 'r, 'p: 'r>(
&'s self,
pool: AutoreleasePool<'p>,
) -> &'r str
pub unsafe fn to_str<'r, 's: 'r, 'p: 'r>( &'s self, pool: AutoreleasePool<'p>, ) -> &'r str
Convert the string into a string slice.
The signature of this method can be a bit confusing, as it contains
several lifetimes; the lifetime 's
of the NSString
, the lifetime
'p
of the current autorelease pool and the lifetime 'r
of the
returned string slice.
In general, this method converts the string to a newly allocated UTF-8 string, autoreleases the buffer, and returns a slice pointer to this internal buffer, which will become invalid once the autorelease pool is popped. So the lifetime of the return value is bound to the current autorelease pool.
However, as an optimization, this method may choose to instead return
an internal reference to the NSString
when it can, and when the
string is immutable, and that is why the lifetime of the returned
string slice is also bound to the string itself.
You should prefer the to_string
method or the
Display
implementation over this method when
possible.
§Safety
The pool must be the innermost pool, see the documentation on
autoreleasepool
.
§Examples
Get the string slice of the NSString
, and compare it with another
inside an autorelease pool.
use objc2_foundation::NSString;
use objc2::rc::autoreleasepool;
let string = NSString::from_str("foo");
autoreleasepool(|pool| {
// SAFETY: The str is not used outside the autorelease pool.
assert_eq!(unsafe { string.to_str(pool) }, "foo");
});
Sourcepub fn from_str(string: &str) -> Retained<Self>
pub fn from_str(string: &str) -> Retained<Self>
Creates an immutable NSString
by copying the given string slice.
Prefer using the ns_string!
macro when possible.
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 AddAssign<&NSString> for &NSMutableString
impl AddAssign<&NSString> for &NSMutableString
Source§fn add_assign(&mut self, other: &NSString)
fn add_assign(&mut self, other: &NSString)
+=
operation. Read moreSource§impl AsRef<NSString> for NSConstantString
impl AsRef<NSString> for NSConstantString
Source§impl AsRef<NSString> for NSMutableString
impl AsRef<NSString> for NSMutableString
Source§impl AsRef<NSString> for NSSimpleCString
impl AsRef<NSString> for NSSimpleCString
Source§impl Borrow<NSString> for NSConstantString
impl Borrow<NSString> for NSConstantString
Source§impl Borrow<NSString> for NSMutableString
impl Borrow<NSString> for NSMutableString
Source§impl Borrow<NSString> for NSSimpleCString
impl Borrow<NSString> for NSSimpleCString
Source§impl ClassType for NSString
impl ClassType for NSString
Source§const NAME: &'static str = "NSString"
const NAME: &'static str = "NSString"
Source§type ThreadKind = <<NSString as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<NSString as ClassType>::Super as ClassType>::ThreadKind
Source§impl CopyingHelper for NSString
Available on crate feature NSObject
only.
impl CopyingHelper for NSString
NSObject
only.Source§impl DefaultRetained for NSString
impl DefaultRetained for NSString
Source§impl MutableCopyingHelper for NSString
Available on crate feature NSObject
only.
impl MutableCopyingHelper for NSString
NSObject
only.Source§type Result = NSMutableString
type Result = NSMutableString
Self
if the type has no
mutable counterpart. Read moreSource§impl NSCoding for NSString
impl NSCoding for NSString
Source§unsafe fn encodeWithCoder(&self, coder: &NSCoder)
unsafe fn encodeWithCoder(&self, coder: &NSCoder)
NSObject
and NSCoder
only.Source§impl NSCopying for NSString
impl NSCopying for NSString
Source§impl NSItemProviderReading for NSString
impl NSItemProviderReading for NSString
Source§impl NSItemProviderWriting for NSString
impl NSItemProviderWriting for NSString
Source§unsafe fn writableTypeIdentifiersForItemProvider_class() -> Retained<NSArray<NSString>>
unsafe fn writableTypeIdentifiersForItemProvider_class() -> Retained<NSArray<NSString>>
NSArray
and NSItemProvider
only.Source§unsafe fn writableTypeIdentifiersForItemProvider(
&self,
) -> Retained<NSArray<NSString>>
unsafe fn writableTypeIdentifiersForItemProvider( &self, ) -> Retained<NSArray<NSString>>
NSArray
and NSItemProvider
only.Source§unsafe fn itemProviderVisibilityForRepresentationWithTypeIdentifier_class(
type_identifier: &NSString,
) -> NSItemProviderRepresentationVisibility
unsafe fn itemProviderVisibilityForRepresentationWithTypeIdentifier_class( type_identifier: &NSString, ) -> NSItemProviderRepresentationVisibility
NSItemProvider
only.Source§unsafe fn itemProviderVisibilityForRepresentationWithTypeIdentifier(
&self,
type_identifier: &NSString,
) -> NSItemProviderRepresentationVisibility
unsafe fn itemProviderVisibilityForRepresentationWithTypeIdentifier( &self, type_identifier: &NSString, ) -> NSItemProviderRepresentationVisibility
NSItemProvider
only.Source§unsafe fn loadDataWithTypeIdentifier_forItemProviderCompletionHandler(
&self,
type_identifier: &NSString,
completion_handler: &DynBlock<dyn Fn(*mut NSData, *mut NSError)>,
) -> Option<Retained<NSProgress>>
unsafe fn loadDataWithTypeIdentifier_forItemProviderCompletionHandler( &self, type_identifier: &NSString, completion_handler: &DynBlock<dyn Fn(*mut NSData, *mut NSError)>, ) -> Option<Retained<NSProgress>>
NSData
and NSError
and NSProgress
and block2
and NSItemProvider
only.Source§impl NSMutableCopying for NSString
impl NSMutableCopying for NSString
Source§impl NSObjectProtocol for NSString
impl NSObjectProtocol for NSString
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
Source§fn isMemberOfClass(&self, cls: &AnyClass) -> bool
fn isMemberOfClass(&self, cls: &AnyClass) -> bool
Source§fn respondsToSelector(&self, aSelector: Sel) -> bool
fn respondsToSelector(&self, aSelector: Sel) -> bool
Source§fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
Source§fn debugDescription(&self) -> Retained<NSObject>
fn debugDescription(&self) -> Retained<NSObject>
Source§impl NSSecureCoding for NSString
impl NSSecureCoding for NSString
Source§impl Ord for NSString
Available on crate feature NSObjCRuntime
only.
impl Ord for NSString
NSObjCRuntime
only.Source§impl PartialEq<NSMutableString> for NSString
impl PartialEq<NSMutableString> for NSString
Source§impl PartialEq<NSString> for NSMutableString
impl PartialEq<NSString> for NSMutableString
Source§impl PartialOrd<NSMutableString> for NSString
Available on crate feature NSObjCRuntime
only.
impl PartialOrd<NSMutableString> for NSString
NSObjCRuntime
only.Source§impl PartialOrd<NSString> for NSMutableString
Available on crate feature NSObjCRuntime
only.
impl PartialOrd<NSString> for NSMutableString
NSObjCRuntime
only.Source§impl PartialOrd for NSString
Available on crate feature NSObjCRuntime
only.
impl PartialOrd for NSString
NSObjCRuntime
only.Source§impl RefEncode for NSString
impl RefEncode for NSString
Source§const ENCODING_REF: Encoding = <NSObject as ::objc2::RefEncode>::ENCODING_REF
const ENCODING_REF: Encoding = <NSObject as ::objc2::RefEncode>::ENCODING_REF
Source§impl ToOwned for NSString
Available on crate feature NSObject
only.
impl ToOwned for NSString
NSObject
only.