NSFileManager

Struct NSFileManager 

Source
pub struct NSFileManager { /* private fields */ }
Available on crate feature NSFileManager only.
Expand description

Implementations§

Source§

impl NSFileManager

Source

pub fn defaultManager() -> Retained<NSFileManager>

Source

pub fn mountedVolumeURLsIncludingResourceValuesForKeys_options( &self, property_keys: Option<&NSArray<NSURLResourceKey>>, options: NSVolumeEnumerationOptions, ) -> Option<Retained<NSArray<NSURL>>>

Available on crate features NSArray and NSString and NSURL only.
Source

pub unsafe fn unmountVolumeAtURL_options_completionHandler( &self, url: &NSURL, mask: NSFileManagerUnmountOptions, completion_handler: &DynBlock<dyn Fn(*mut NSError)>, )

Available on crate features NSError and NSURL and block2 only.
§Safety

completion_handler block must be sendable.

Source

pub fn contentsOfDirectoryAtURL_includingPropertiesForKeys_options_error( &self, url: &NSURL, keys: Option<&NSArray<NSURLResourceKey>>, mask: NSDirectoryEnumerationOptions, ) -> Result<Retained<NSArray<NSURL>>, Retained<NSError>>

Available on crate features NSArray and NSError and NSString and NSURL only.
Source

pub fn URLsForDirectory_inDomains( &self, directory: NSSearchPathDirectory, domain_mask: NSSearchPathDomainMask, ) -> Retained<NSArray<NSURL>>

Available on crate features NSArray and NSPathUtilities and NSURL only.
Source

pub fn URLForDirectory_inDomain_appropriateForURL_create_error( &self, directory: NSSearchPathDirectory, domain: NSSearchPathDomainMask, url: Option<&NSURL>, should_create: bool, ) -> Result<Retained<NSURL>, Retained<NSError>>

Available on crate features NSError and NSPathUtilities and NSURL only.
Source

pub unsafe fn getRelationship_ofDirectoryAtURL_toItemAtURL_error( &self, out_relationship: NonNull<NSURLRelationship>, directory_url: &NSURL, other_url: &NSURL, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSURL only.
§Safety

out_relationship must be a valid pointer.

Source

pub unsafe fn getRelationship_ofDirectory_inDomain_toItemAtURL_error( &self, out_relationship: NonNull<NSURLRelationship>, directory: NSSearchPathDirectory, domain_mask: NSSearchPathDomainMask, url: &NSURL, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSPathUtilities and NSURL only.
§Safety

out_relationship must be a valid pointer.

Source

pub unsafe fn createDirectoryAtURL_withIntermediateDirectories_attributes_error( &self, url: &NSURL, create_intermediates: bool, attributes: Option<&NSDictionary<NSFileAttributeKey, AnyObject>>, ) -> Result<(), Retained<NSError>>

Available on crate features NSDictionary and NSError and NSString and NSURL only.
§Safety

attributes generic should be of the correct type.

Source

pub fn createSymbolicLinkAtURL_withDestinationURL_error( &self, url: &NSURL, dest_url: &NSURL, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSURL only.
Source

pub unsafe fn delegate( &self, ) -> Option<Retained<ProtocolObject<dyn NSFileManagerDelegate>>>

§Safety

This is not retained internally, you must ensure the object is still alive.

Source

pub unsafe fn setDelegate( &self, delegate: Option<&ProtocolObject<dyn NSFileManagerDelegate>>, )

Setter for delegate.

§Safety

This is unretained, you must ensure the object is kept alive while in use.

Source

pub unsafe fn setAttributes_ofItemAtPath_error( &self, attributes: &NSDictionary<NSFileAttributeKey, AnyObject>, path: &NSString, ) -> Result<(), Retained<NSError>>

Available on crate features NSDictionary and NSError and NSString only.
§Safety

attributes generic should be of the correct type.

Source

pub unsafe fn createDirectoryAtPath_withIntermediateDirectories_attributes_error( &self, path: &NSString, create_intermediates: bool, attributes: Option<&NSDictionary<NSFileAttributeKey, AnyObject>>, ) -> Result<(), Retained<NSError>>

Available on crate features NSDictionary and NSError and NSString only.
§Safety

attributes generic should be of the correct type.

Source

pub fn contentsOfDirectoryAtPath_error( &self, path: &NSString, ) -> Result<Retained<NSArray<NSString>>, Retained<NSError>>

Available on crate features NSArray and NSError and NSString only.
Source

pub fn subpathsOfDirectoryAtPath_error( &self, path: &NSString, ) -> Result<Retained<NSArray<NSString>>, Retained<NSError>>

Available on crate features NSArray and NSError and NSString only.
Source

pub fn attributesOfItemAtPath_error( &self, path: &NSString, ) -> Result<Retained<NSDictionary<NSFileAttributeKey, AnyObject>>, Retained<NSError>>

Available on crate features NSDictionary and NSError and NSString only.
Source

pub fn attributesOfFileSystemForPath_error( &self, path: &NSString, ) -> Result<Retained<NSDictionary<NSFileAttributeKey, AnyObject>>, Retained<NSError>>

Available on crate features NSDictionary and NSError and NSString only.
Source

pub fn createSymbolicLinkAtPath_withDestinationPath_error( &self, path: &NSString, dest_path: &NSString, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSString only.
Source

pub fn destinationOfSymbolicLinkAtPath_error( &self, path: &NSString, ) -> Result<Retained<NSString>, Retained<NSError>>

Available on crate features NSError and NSString only.
Source

pub fn copyItemAtPath_toPath_error( &self, src_path: &NSString, dst_path: &NSString, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSString only.
Source

pub fn moveItemAtPath_toPath_error( &self, src_path: &NSString, dst_path: &NSString, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSString only.
Source

pub fn linkItemAtPath_toPath_error( &self, src_path: &NSString, dst_path: &NSString, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSString only.
Source

pub fn removeItemAtPath_error( &self, path: &NSString, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSString only.
Source

pub fn copyItemAtURL_toURL_error( &self, src_url: &NSURL, dst_url: &NSURL, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSURL only.
Source

pub fn moveItemAtURL_toURL_error( &self, src_url: &NSURL, dst_url: &NSURL, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSURL only.
Source

pub fn linkItemAtURL_toURL_error( &self, src_url: &NSURL, dst_url: &NSURL, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSURL only.
Source

pub fn removeItemAtURL_error( &self, url: &NSURL, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSURL only.
Source

pub fn trashItemAtURL_resultingItemURL_error( &self, url: &NSURL, out_resulting_url: Option<&mut Option<Retained<NSURL>>>, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSURL only.
👎Deprecated: Use -attributesOfItemAtPath:error: instead
Available on crate features NSDictionary and NSString only.
Source

pub unsafe fn changeFileAttributes_atPath( &self, attributes: &NSDictionary, path: &NSString, ) -> bool

👎Deprecated: Use -setAttributes:ofItemAtPath:error: instead
Available on crate features NSDictionary and NSString only.
§Safety

attributes generic should be of the correct type.

Source

pub fn directoryContentsAtPath( &self, path: &NSString, ) -> Option<Retained<NSArray>>

👎Deprecated: Use -contentsOfDirectoryAtPath:error: instead
Available on crate features NSArray and NSString only.
Source

pub fn fileSystemAttributesAtPath( &self, path: &NSString, ) -> Option<Retained<NSDictionary>>

👎Deprecated: Use -attributesOfFileSystemForPath:error: instead
Available on crate features NSDictionary and NSString only.
Source

pub fn pathContentOfSymbolicLinkAtPath( &self, path: &NSString, ) -> Option<Retained<NSString>>

👎Deprecated: Use -destinationOfSymbolicLinkAtPath:error:
Available on crate feature NSString only.
Source

pub fn createSymbolicLinkAtPath_pathContent( &self, path: &NSString, otherpath: &NSString, ) -> bool

👎Deprecated: Use -createSymbolicLinkAtPath:error: instead
Available on crate feature NSString only.
Source

pub unsafe fn createDirectoryAtPath_attributes( &self, path: &NSString, attributes: &NSDictionary, ) -> bool

👎Deprecated: Use -createDirectoryAtPath:withIntermediateDirectories:attributes:error: instead
Available on crate features NSDictionary and NSString only.
§Safety

attributes generic should be of the correct type.

Source

pub unsafe fn linkPath_toPath_handler( &self, src: &NSString, dest: &NSString, handler: Option<&AnyObject>, ) -> bool

👎Deprecated: Not supported
Available on crate feature NSString only.
§Safety

handler should be of the correct type.

Source

pub unsafe fn copyPath_toPath_handler( &self, src: &NSString, dest: &NSString, handler: Option<&AnyObject>, ) -> bool

👎Deprecated: Not supported
Available on crate feature NSString only.
§Safety

handler should be of the correct type.

Source

pub unsafe fn movePath_toPath_handler( &self, src: &NSString, dest: &NSString, handler: Option<&AnyObject>, ) -> bool

👎Deprecated: Not supported
Available on crate feature NSString only.
§Safety

handler should be of the correct type.

Source

pub unsafe fn removeFileAtPath_handler( &self, path: &NSString, handler: Option<&AnyObject>, ) -> bool

👎Deprecated: Not supported
Available on crate feature NSString only.
§Safety

handler should be of the correct type.

Source

pub fn currentDirectoryPath(&self) -> Retained<NSString>

Available on crate feature NSString only.
Source

pub fn changeCurrentDirectoryPath(&self, path: &NSString) -> bool

Available on crate feature NSString only.
Source

pub fn fileExistsAtPath(&self, path: &NSString) -> bool

Available on crate feature NSString only.
Source

pub unsafe fn fileExistsAtPath_isDirectory( &self, path: &NSString, is_directory: *mut Bool, ) -> bool

Available on crate feature NSString only.
§Safety

is_directory must be a valid pointer or null.

Source

pub fn isReadableFileAtPath(&self, path: &NSString) -> bool

Available on crate feature NSString only.
Source

pub fn isWritableFileAtPath(&self, path: &NSString) -> bool

Available on crate feature NSString only.
Source

pub fn isExecutableFileAtPath(&self, path: &NSString) -> bool

Available on crate feature NSString only.
Source

pub fn isDeletableFileAtPath(&self, path: &NSString) -> bool

Available on crate feature NSString only.
Source

pub fn contentsEqualAtPath_andPath( &self, path1: &NSString, path2: &NSString, ) -> bool

Available on crate feature NSString only.
Source

pub fn displayNameAtPath(&self, path: &NSString) -> Retained<NSString>

Available on crate feature NSString only.
Source

pub fn componentsToDisplayForPath( &self, path: &NSString, ) -> Option<Retained<NSArray<NSString>>>

Available on crate features NSArray and NSString only.
Source

pub fn enumeratorAtPath( &self, path: &NSString, ) -> Option<Retained<NSDirectoryEnumerator<NSString>>>

Available on crate features NSEnumerator and NSString only.
Source

pub fn enumeratorAtURL_includingPropertiesForKeys_options_errorHandler( &self, url: &NSURL, keys: Option<&NSArray<NSURLResourceKey>>, mask: NSDirectoryEnumerationOptions, handler: Option<&DynBlock<dyn Fn(NonNull<NSURL>, NonNull<NSError>) -> Bool>>, ) -> Option<Retained<NSDirectoryEnumerator<NSURL>>>

Available on crate features NSArray and NSEnumerator and NSError and NSString and NSURL and block2 only.
Source

pub fn subpathsAtPath( &self, path: &NSString, ) -> Option<Retained<NSArray<NSString>>>

Available on crate features NSArray and NSString only.
Source

pub fn contentsAtPath(&self, path: &NSString) -> Option<Retained<NSData>>

Available on crate features NSData and NSString only.
Source

pub unsafe fn createFileAtPath_contents_attributes( &self, path: &NSString, data: Option<&NSData>, attr: Option<&NSDictionary<NSFileAttributeKey, AnyObject>>, ) -> bool

Available on crate features NSData and NSDictionary and NSString only.
§Safety

attr generic should be of the correct type.

Source

pub fn fileSystemRepresentationWithPath( &self, path: &NSString, ) -> NonNull<c_char>

Available on crate feature NSString only.
Source

pub unsafe fn stringWithFileSystemRepresentation_length( &self, str: NonNull<c_char>, len: NSUInteger, ) -> Retained<NSString>

Available on crate feature NSString only.
§Safety

str must be a valid pointer.

Source

pub fn replaceItemAtURL_withItemAtURL_backupItemName_options_resultingItemURL_error( &self, original_item_url: &NSURL, new_item_url: &NSURL, backup_item_name: Option<&NSString>, options: NSFileManagerItemReplacementOptions, resulting_url: Option<&mut Option<Retained<NSURL>>>, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSString and NSURL only.
Source

pub fn setUbiquitous_itemAtURL_destinationURL_error( &self, flag: bool, url: &NSURL, destination_url: &NSURL, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSURL only.
Source

pub fn isUbiquitousItemAtURL(&self, url: &NSURL) -> bool

Available on crate feature NSURL only.
Source

pub fn startDownloadingUbiquitousItemAtURL_error( &self, url: &NSURL, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSURL only.
Source

pub fn evictUbiquitousItemAtURL_error( &self, url: &NSURL, ) -> Result<(), Retained<NSError>>

Available on crate features NSError and NSURL only.
Source

pub fn URLForUbiquityContainerIdentifier( &self, container_identifier: Option<&NSString>, ) -> Option<Retained<NSURL>>

Available on crate features NSString and NSURL only.
Source

pub fn URLForPublishingUbiquitousItemAtURL_expirationDate_error( &self, url: &NSURL, out_date: Option<&mut Option<Retained<NSDate>>>, ) -> Result<Retained<NSURL>, Retained<NSError>>

Available on crate features NSDate and NSError and NSURL only.
Source

pub fn ubiquityIdentityToken(&self) -> Option<Retained<AnyObject>>

Available on crate feature NSObject only.
Source

pub unsafe fn pauseSyncForUbiquitousItemAtURL_completionHandler( &self, url: &NSURL, completion_handler: &DynBlock<dyn Fn(*mut NSError)>, )

Available on crate features NSError and NSURL and block2 only.

Asynchronously pauses sync of an item at the given URL.

Call this when opening an item to prevent sync from altering the contents of the URL. Once paused, the file provider will not upload local changes nor download remote changes.

While paused, call uploadLocalVersionOfUbiquitousItem(at:withConflictResolutionPolicy:completionHandler:) when the document is in a stable state. This action keeps the server version as up-to-date as possible.

If the item is already paused, a second call to this method reports success. If the file provider is already applying changes to the item, the pause fails with an NSFileWriteUnknownError-enum.case, with an underlying error that has domain NSPOSIXErrorDomain and code POSIXError/EBUSY. If the pause fails, wait for the state to stabilize before retrying. Pausing also fails with CocoaError/featureUnsupported if url refers to a regular (non-package) directory.

Pausing sync is independent of the calling app’s lifecycle; sync doesn’t automatically resume if the app closes or crashes and relaunches later. To resume syncing, explicitly call resumeSyncForUbiquitousItem(at:with:completionHandler:). Always be sure to resume syncing before you close the item.

  • Parameters:
  • url: The URL of the item for which to pause sync.
  • completionHandler: A closure or block that the framework calls when the pause action completes. It receives a single NSError parameter to indicate an error that prevented pausing; this value is nil if the pause succeeded. In Swift, you can omit the completion handler and catch the thrown error instead.
§Safety

completion_handler block must be sendable.

Source

pub unsafe fn resumeSyncForUbiquitousItemAtURL_withBehavior_completionHandler( &self, url: &NSURL, behavior: NSFileManagerResumeSyncBehavior, completion_handler: &DynBlock<dyn Fn(*mut NSError)>, )

Available on crate features NSError and NSURL and block2 only.

Asynchronously resumes the sync on a paused item using the given resume behavior.

Always call this method when your app closes an item to allow the file provider to sync local changes back to the server.

In most situations, the NSFileManagerResumeSyncBehavior/preserveLocalChanges behavior is the best choice to avoid any risk of data loss.

The resume call fails with CocoaError/featureUnsupported if url isn’t currently paused. If the device isn’t connected to the network, the call may fail with NSFileWriteUnknownError-enum.case, with the underlying error of <doc ://com.apple.documentation/documentation/FileProvider/NSFileProviderError/serverUnreachable>.

  • Parameters:
  • url: The URL of the item for which to resume sync.
  • behavior: A NSFileManagerResumeSyncBehavior value that tells the file manager how to handle conflicts between local and remote versions of files.
  • completionHandler: A closure or block that the framework calls when the resume action completes. It receives a single NSError parameter to indicate an error that prevented the resume action; the value is nil if the resume succeeded. In Swift, you can omit the completion handler and catch the thrown error instead.
§Safety

completion_handler block must be sendable.

Source

pub unsafe fn fetchLatestRemoteVersionOfItemAtURL_completionHandler( &self, url: &NSURL, completion_handler: &DynBlock<dyn Fn(*mut NSFileVersion, *mut NSError)>, )

Available on crate features NSError and NSFileVersion and NSURL and block2 only.

Asynchronously fetches the latest remote version of a given item from the server.

Use this method if uploading fails due to a version conflict and sync is paused. In this case, fetching the latest remote version allows you to inspect the newer item from the server, resolve the conflict, and resume uploading.

The version provided by this call depends on several factors:

  • If there is no newer version of the file on the server, the caller receives the current version of the file.
  • If the server has a newer version and sync isn’t paused, this call replaces the local item and provides the version of the new item.
  • If the server has a newer version but sync is paused, the returned version points to a side location. In this case, call NSFileVersion/replaceItem(at:options:) on the provided version object to replace the local item with the newer item from the server.

If the device isn’t connected to the network, the call may fail with NSFileReadUnknownError-enum.case, with the underlying error of <doc ://com.apple.documentation/documentation/FileProvider/NSFileProviderError/serverUnreachable>.

  • Parameters:
  • url: The URL of the item for which to check the version.
  • completionHandler: A closure or block that the framework calls when the fetch action completes. It receives parameters of types NSFileVersion and NSError. The error is nil if fetching the remote version succeeded; otherwise it indicates the error that caused the call to fail. In Swift, you can omit the completion handler, catching any error in a do-catch block and receiving the version as the return value.
§Safety

completion_handler block must be sendable.

Source

pub unsafe fn uploadLocalVersionOfUbiquitousItemAtURL_withConflictResolutionPolicy_completionHandler( &self, url: &NSURL, conflict_resolution_policy: NSFileManagerUploadLocalVersionConflictPolicy, completion_handler: &DynBlock<dyn Fn(*mut NSFileVersion, *mut NSError)>, )

Available on crate features NSError and NSFileVersion and NSURL and block2 only.

Asynchronously uploads the local version of the item using the provided conflict resolution policy.

Once your app pauses a sync for an item, call this method every time your document is in a stable state. This action keeps the server version as up-to-date as possible.

If the server has a newer version than the one to which the app made changes, uploading fails with NSFileWriteUnknownError-enum.case, with an underlying error of <doc ://com.apple.documentation/documentation/FileProvider/NSFileProviderError/localVersionConflictingWithServer>. In this case, call FileManager/fetchLatestRemoteVersionOfItem(at:completionHandler:), rebase local changes on top of that version, and retry the upload.

If the device isn’t connected to the network, the call may fail with NSFileWriteUnknownError-enum.case, with the underlying error of <doc ://com.apple.documentation/documentation/FileProvider/NSFileProviderError/serverUnreachable>.

  • Parameters:
  • url: The URL of the item for which to check the version.
  • conflictResolutionPolicy: The policy the file manager applies if the local and server versions conflict.
  • completionHandler: A closure or block that the framework calls when the upload completes. It receives parameters of types NSFileVersion and NSError. The error is nil if fetching the remote version succeeded; otherwise it indicates the error that caused the call to fail. In Swift, you can omit the completion handler, catching any error in a do-catch block and receiving the version as the return value.
§Safety

completion_handler block must be sendable.

Source

pub unsafe fn getFileProviderServicesForItemAtURL_completionHandler( &self, url: &NSURL, completion_handler: &DynBlock<dyn Fn(*mut NSDictionary<NSFileProviderServiceName, NSFileProviderService>, *mut NSError)>, )

Available on crate features NSDictionary and NSError and NSString and NSURL and block2 only.
§Safety

completion_handler block must be sendable.

Source

pub fn containerURLForSecurityApplicationGroupIdentifier( &self, group_identifier: &NSString, ) -> Option<Retained<NSURL>>

Available on crate features NSString and NSURL only.
Source§

impl NSFileManager

Methods declared on superclass NSObject.

Source

pub fn init(this: Allocated<Self>) -> Retained<Self>

Source

pub fn new() -> Retained<Self>

Source§

impl NSFileManager

NSUserInformation.

Source

pub fn homeDirectoryForCurrentUser(&self) -> Retained<NSURL>

Available on crate feature NSURL only.
Source

pub fn temporaryDirectory(&self) -> Retained<NSURL>

Available on crate feature NSURL only.
Source

pub fn homeDirectoryForUser( &self, user_name: &NSString, ) -> Option<Retained<NSURL>>

Available on crate features NSString and NSURL only.

Methods from Deref<Target = NSObject>§

Source

pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !

Handle messages the object doesn’t recognize.

See Apple’s documentation for details.

Methods from Deref<Target = AnyObject>§

Source

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());
Source

pub unsafe fn get_ivar<T>(&self, name: &str) -> &T
where T: Encode,

👎Deprecated: this is difficult to use correctly, use 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.

Source

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 NSFileManager

Source§

fn as_ref(&self) -> &AnyObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<NSFileManager> for NSFileManager

Source§

fn as_ref(&self) -> &Self

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<NSObject> for NSFileManager

Source§

fn as_ref(&self) -> &NSObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Borrow<AnyObject> for NSFileManager

Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSObject> for NSFileManager

Source§

fn borrow(&self) -> &NSObject

Immutably borrows from an owned value. Read more
Source§

impl ClassType for NSFileManager

Source§

const NAME: &'static str = "NSFileManager"

The name of the Objective-C class that this type represents. Read more
Source§

type Super = NSObject

The superclass of this class. Read more
Source§

type ThreadKind = <<NSFileManager as ClassType>::Super as ClassType>::ThreadKind

Whether the type can be used from any thread, or from only the main thread. Read more
Source§

fn class() -> &'static AnyClass

Get a reference to the Objective-C class that this type represents. Read more
Source§

fn as_super(&self) -> &Self::Super

Get an immutable reference to the superclass.
Source§

impl Debug for NSFileManager

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl DefaultRetained for NSFileManager

Source§

fn default_retained() -> Retained<Self>

The default Retained for a type. Read more
Source§

impl Deref for NSFileManager

Source§

type Target = NSObject

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Hash for NSFileManager

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Message for NSFileManager

Source§

fn retain(&self) -> Retained<Self>
where Self: Sized,

Increment the reference count of the receiver. Read more
Source§

impl NSObjectProtocol for NSFileManager

Source§

fn isEqual(&self, other: Option<&AnyObject>) -> bool
where Self: Sized + Message,

Check whether the object is equal to an arbitrary other object. Read more
Source§

fn hash(&self) -> usize
where Self: Sized + Message,

An integer that can be used as a table address in a hash table structure. Read more
Source§

fn isKindOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of the class, or one of its subclasses. Read more
Source§

fn is_kind_of<T>(&self) -> bool
where T: ClassType, Self: Sized + Message,

👎Deprecated: use isKindOfClass directly, or cast your objects with AnyObject::downcast_ref
Check if the object is an instance of the class type, or one of its subclasses. Read more
Source§

fn isMemberOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of a specific class, without checking subclasses. Read more
Source§

fn respondsToSelector(&self, aSelector: Sel) -> bool
where Self: Sized + Message,

Check whether the object implements or inherits a method with the given selector. Read more
Source§

fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
where Self: Sized + Message,

Check whether the object conforms to a given protocol. Read more
Source§

fn description(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object. Read more
Source§

fn debugDescription(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object to use when debugging. Read more
Source§

fn isProxy(&self) -> bool
where Self: Sized + Message,

Check whether the receiver is a subclass of the NSProxy root class instead of the usual NSObject. Read more
Source§

fn retainCount(&self) -> usize
where Self: Sized + Message,

The reference count of the object. Read more
Source§

impl PartialEq for NSFileManager

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefEncode for NSFileManager

Source§

const ENCODING_REF: Encoding = <NSObject as ::objc2::RefEncode>::ENCODING_REF

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl DowncastTarget for NSFileManager

Source§

impl Eq for NSFileManager

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T> AnyThread for T
where T: ClassType<ThreadKind = dyn AnyThread + 'a> + ?Sized,

Source§

fn alloc() -> Allocated<Self>
where Self: Sized + ClassType,

Allocate a new instance of the class. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,