---
title: NSFileProviderExtension
framework: fileprovider
role: symbol
role_heading: Class
path: fileprovider/nsfileproviderextension
---

# NSFileProviderExtension

The principal class for the nonreplicated File Provider extension.

## Declaration

```swift
class NSFileProviderExtension
```

## Overview

Overview To create a nonreplicated File Provider extension, start by creating a subclass of the NSFileProviderExtension class. When implementing your NSFileProviderExtension subclass, remember: Override all of the extension’s methods (except the deprecated methods), even if your implementation is only an empty method. Use your method implementations to provide access to the documents and folders managed by your file provider. Don’t call super in your method implementations. Don’t use the NSFileProviderExtension class in macOS. Instead, create an NSObject subclass that adopts the NSFileProviderReplicatedExtension and NSFileProviderEnumerating protocols. For more information, see Replicated File Provider extension.

## Topics

### Working with items and persistent identifiers

- [persistentIdentifierForItem(at:)](fileprovider/nsfileproviderextension/persistentidentifierforitem(at:).md)
- [urlForItem(withPersistentIdentifier:)](fileprovider/nsfileproviderextension/urlforitem(withpersistentidentifier:).md)
- [item(for:)](fileprovider/nsfileproviderextension/item(for:).md)
- [enumerator(for:)](fileprovider/nsfileproviderextension/enumerator(for:).md)
- [NSFileProviderItemIdentifier](fileprovider/nsfileprovideritemidentifier.md)

### Managing shared files

- [itemChanged(at:)](fileprovider/nsfileproviderextension/itemchanged(at:).md)
- [providePlaceholder(at:completionHandler:)](fileprovider/nsfileproviderextension/provideplaceholder(at:completionhandler:).md)
- [startProvidingItem(at:completionHandler:)](fileprovider/nsfileproviderextension/startprovidingitem(at:completionhandler:).md)
- [stopProvidingItem(at:)](fileprovider/nsfileproviderextension/stopprovidingitem(at:).md)

### Handling actions

- [Providing support for user-driven actions](fileprovider/providing-support-for-user-driven-actions.md)
- [createDirectory(withName:inParentItemIdentifier:completionHandler:)](fileprovider/nsfileproviderextension/createdirectory(withname:inparentitemidentifier:completionhandler:).md)
- [deleteItem(withIdentifier:completionHandler:)](fileprovider/nsfileproviderextension/deleteitem(withidentifier:completionhandler:).md)
- [importDocument(at:toParentItemIdentifier:completionHandler:)](fileprovider/nsfileproviderextension/importdocument(at:toparentitemidentifier:completionhandler:).md)
- [renameItem(withIdentifier:toName:completionHandler:)](fileprovider/nsfileproviderextension/renameitem(withidentifier:toname:completionhandler:).md)
- [reparentItem(withIdentifier:toParentItemWithIdentifier:newName:completionHandler:)](fileprovider/nsfileproviderextension/reparentitem(withidentifier:toparentitemwithidentifier:newname:completionhandler:).md)
- [setFavoriteRank(_:forItemIdentifier:completionHandler:)](fileprovider/nsfileproviderextension/setfavoriterank(_:foritemidentifier:completionhandler:).md)
- [setLastUsedDate(_:forItemIdentifier:completionHandler:)](fileprovider/nsfileproviderextension/setlastuseddate(_:foritemidentifier:completionhandler:).md)
- [setTagData(_:forItemIdentifier:completionHandler:)](fileprovider/nsfileproviderextension/settagdata(_:foritemidentifier:completionhandler:).md)
- [trashItem(withIdentifier:completionHandler:)](fileprovider/nsfileproviderextension/trashitem(withidentifier:completionhandler:).md)
- [untrashItem(withIdentifier:toParentItemIdentifier:completionHandler:)](fileprovider/nsfileproviderextension/untrashitem(withidentifier:toparentitemidentifier:completionhandler:).md)

### Managing domains

- [domain](fileprovider/nsfileproviderextension/domain.md)

### Accessing thumbnails

- [fetchThumbnails(for:requestedSize:perThumbnailCompletionHandler:completionHandler:)](fileprovider/nsfileproviderextension/fetchthumbnails(for:requestedsize:perthumbnailcompletionhandler:completionhandler:).md)

### Working with services

- [supportedServiceSources(for:)](fileprovider/nsfileproviderextension/supportedservicesources(for:).md)
- [NSFileProviderServiceSource](fileprovider/nsfileproviderservicesource.md)

### Managing placeholders

- [placeholderURL(for:)](fileprovider/nsfileproviderextension/placeholderurl(for:).md)
- [writePlaceholder(at:withMetadata:)](fileprovider/nsfileproviderextension/writeplaceholder(at:withmetadata:).md)

### Accessing the document storage

- [documentStorageURL](fileprovider/nsfileproviderextension/documentstorageurl.md)
- [providerIdentifier](fileprovider/nsfileproviderextension/provideridentifier.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Nonreplicated extension

- [Content and Change Tracking](fileprovider/content-and-change-tracking.md)
