Platforms to show: All Mac Windows Linux Cross-Platform

CNContactStoreMBS class

Type Topic Plugin Version macOS Windows Linux iOS Targets
class Contacts MBS Mac64bit Plugin 16.3 ✅ Yes ❌ No ❌ No ✅ Yes Desktop & iOS
The CNContactStore class is a thread-safe class that can fetch and save contacts, groups, and containers.

The CNContactStore class provides ways to execute fetch and save requests. There are a few recommended ways you can implement these requests in your app to load contacts:

  • Fetch only the contact properties that will be used.
  • When fetching all contacts and caching the results, first fetch all contacts identifiers, then fetch batches of detailed contacts by identifiers as required.
  • To aggregate several contacts fetches, first collect a set of unique identifiers from the fetches. Then fetch batches of detailed contacts by those unique identifiers.
  • If you cache the fetched contacts, groups, or containers, you need to refetch these objects (and release the old cached objects) when CNContactStoreDidChangeNotification is posted.

Because CNContactStore fetch methods perform I/O, it’s recommended that you avoid using the main thread to execute fetches.

Your app must be code signed to see contacts.

Warning: Do not use in macOS 10.11 or earlier due to bugs, which have been fixed in macOS 10.12.

Constants

Constant Value Description
CNAuthorizationStatusAuthorized 3 One of the authorization status values the user can grant for an app to access the specified entity type. The application is authorized to access contact data.
CNAuthorizationStatusDenied 2 One of the authorization status values the user can grant for an app to access the specified entity type. The user explicitly denied access to contact data for the application.
CNAuthorizationStatusNotDetermined 0 One of the authorization status values the user can grant for an app to access the specified entity type. The user has not yet made a choice regarding whether the application may access contact data.
CNAuthorizationStatusRestricted 1 One of the authorization status values the user can grant for an app to access the specified entity type. The application is not authorized to access contact data. The user cannot change this application’s status, possibly due to active restrictions such as parental controls being in place.

Contact Types

Constant Value Description
CNEntityTypeContacts 0 Contacts

Error Codes

Constant Value Description
CNErrorCodeAuthorizationDenied 100 Authentication denied error.
CNErrorCodeCommunicationError 1 Communication error.
CNErrorCodeContainmentCycle 202 Code containment cycle error.
CNErrorCodeContainmentScope 203 Code containment scope error.
CNErrorCodeDataAccessError 2 Data access error.
CNErrorCodeInsertedRecordAlreadyExists 201 Record already exists.
CNErrorCodeParentRecordDoesNotExist 204 The contact does not exist error.
CNErrorCodePolicyViolation 500 Policy validation error.
CNErrorCodePredicateInvalid 400 Invalid predicate error.
CNErrorCodeRecordDoesNotExist 200 Record not found.
CNErrorCodeRecordIdentifierInvalid 205 Record identifier not valid.
CNErrorCodeValidationConfigurationError 302 Configuration validation error.
CNErrorCodeValidationMultipleErrors 300 Multiple validation error.
CNErrorCodeValidationTypeMismatch 301 Type mismatch validation error.

This class has no sub classes.

Some examples using this class:

Blog Entries

Release notes


The items on this page are in the following plugins: MBS Mac64bit Plugin.


CNContactRelationMBS   -   CNContactsUserDefaultsMBS


The biggest plugin in space...