#[repr(C)]pub struct NSConstantString { /* private fields */ }
NSString
only.Expand description
Implementations§
Source§impl NSConstantString
Methods declared on superclass NSString
.
impl NSConstantString
Methods declared on superclass NSString
.
Methods from Deref<Target = NSString>§
pub unsafe fn variantFittingPresentationWidth( &self, width: NSInteger, ) -> Retained<NSString>
NSBundle
only.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.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.pub fn length(&self) -> NSUInteger
pub unsafe fn characterAtIndex(&self, index: NSUInteger) -> unichar
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 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 propertyList(&self) -> Retained<AnyObject>
pub unsafe fn propertyListFromStringsFileFormat( &self, ) -> Option<Retained<NSDictionary>>
NSDictionary
only.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 getCharacters(&self, buffer: NonNull<unichar>)
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.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");
});
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 NSConstantString
impl AsRef<AnyObject> for NSConstantString
Source§impl AsRef<NSConstantString> for NSConstantString
impl AsRef<NSConstantString> for NSConstantString
Source§impl AsRef<NSObject> for NSConstantString
impl AsRef<NSObject> for NSConstantString
Source§impl AsRef<NSSimpleCString> for NSConstantString
impl AsRef<NSSimpleCString> for NSConstantString
Source§fn as_ref(&self) -> &NSSimpleCString
fn as_ref(&self) -> &NSSimpleCString
Source§impl AsRef<NSString> for NSConstantString
impl AsRef<NSString> for NSConstantString
Source§impl Borrow<AnyObject> for NSConstantString
impl Borrow<AnyObject> for NSConstantString
Source§impl Borrow<NSObject> for NSConstantString
impl Borrow<NSObject> for NSConstantString
Source§impl Borrow<NSSimpleCString> for NSConstantString
impl Borrow<NSSimpleCString> for NSConstantString
Source§fn borrow(&self) -> &NSSimpleCString
fn borrow(&self) -> &NSSimpleCString
Source§impl Borrow<NSString> for NSConstantString
impl Borrow<NSString> for NSConstantString
Source§impl ClassType for NSConstantString
impl ClassType for NSConstantString
Source§const NAME: &'static str = "NSConstantString"
const NAME: &'static str = "NSConstantString"
Source§type Super = NSSimpleCString
type Super = NSSimpleCString
Source§type ThreadKind = <<NSConstantString as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<NSConstantString as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for NSConstantString
impl Debug for NSConstantString
Source§impl Deref for NSConstantString
impl Deref for NSConstantString
Source§impl Hash for NSConstantString
impl Hash for NSConstantString
Source§impl Message for NSConstantString
impl Message for NSConstantString
Source§impl NSCoding for NSConstantString
impl NSCoding for NSConstantString
Source§unsafe fn encodeWithCoder(&self, coder: &NSCoder)
unsafe fn encodeWithCoder(&self, coder: &NSCoder)
NSObject
and NSCoder
only.Source§impl NSObjectProtocol for NSConstantString
impl NSObjectProtocol for NSConstantString
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