---
title: NEFilterManager
framework: networkextension
role: symbol
role_heading: Class
path: networkextension/nefiltermanager
---

# NEFilterManager

An object to create and manage a content filter’s configuration.

## Declaration

```swift
class NEFilterManager
```

## Overview

Overview Each app is allowed to create a single filter configuration. The NEFilterManager class has a class method (shared()) that provides access to a single NEFilterManager instance. This single instance corresponds to a single filter configuration. The filter configuration is stored in the Network Extension preferences which are managed by the Network Extension framework. The filter configuration must be explicitly loaded into memory from the Network Extension preferences before it can be used, and any changes must be explicitly saved to the Network Extension preferences before taking effect on the system. important: In product builds for distribution, Network Content Filter configurations can be created only on supervised devices. During development and testing you can temporarily override this restriction by signing your build with the get-task-allow entitlement. important: To use the NEFilterManager class, you must enable the Network Extensions capability in Xcode and select the Content Filter capability. See Configure network extensions. Profile Configuration Filter configurations are created using configuration profiles. See WebContentFilter for more information. To specify that a filter configuration created via a profile payload is associated with a particular app (and therefore allow the app to use NEFilterManager to manage the configuration), the app’s bundle identifier must be set as the value of the PluginBundleID field in the profile payload. Filter Provider Extensions Apps that use NEFilterManager are required to contain two Filter Provider extensions that together perform the task of examining network content and making pass and block decisions. See the NEFilterControlProvider and NEFilterDataProvider classes for more details about these extensions.

## Topics

### Managing the filter configuration

- [shared()](networkextension/nefiltermanager/shared().md)
- [loadFromPreferences(completionHandler:)](networkextension/nefiltermanager/loadfrompreferences(completionhandler:).md)
- [saveToPreferences(completionHandler:)](networkextension/nefiltermanager/savetopreferences(completionhandler:).md)
- [removeFromPreferences(completionHandler:)](networkextension/nefiltermanager/removefrompreferences(completionhandler:).md)

### Accessing filter configuration properties

- [isEnabled](networkextension/nefiltermanager/isenabled.md)
- [providerConfiguration](networkextension/nefiltermanager/providerconfiguration.md)
- [localizedDescription](networkextension/nefiltermanager/localizeddescription.md)

### Prioritizing filters

- [grade](networkextension/nefiltermanager/grade-swift.property.md)
- [NEFilterManager.Grade](networkextension/nefiltermanager/grade-swift.enum.md)

### Errors

- [NEFilterErrorDomain](networkextension/nefiltererrordomain.md)
- [NEFilterManagerError](networkextension/nefiltermanagererror.md)

### Notifications

- [NEFilterConfigurationDidChange](foundation/nsnotification/name-swift.struct/nefilterconfigurationdidchange.md)

### Instance Properties

- [disableEncryptedDNSSettings](networkextension/nefiltermanager/disableencrypteddnssettings.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

### Filter configuration

- [NEFilterProviderConfiguration](networkextension/nefilterproviderconfiguration.md)
