---
title: CNContact
framework: contacts
role: symbol
role_heading: Class
path: contacts/cncontact
---

# CNContact

An immutable object that stores information about a single contact, such as the contact’s first name, phone numbers, and addresses.

## Declaration

```swift
class CNContact
```

## Overview

Overview A CNContact object stores an immutable copy of a contact’s information, so you cannot change the information in this object directly. Contact objects are thread-safe, so you may access them from any thread of your app. To modify a contact’s information, call the mutableCopy() method to obtain a CNMutableContact object with the same information. After modifying the mutable contact, save your changes back to the contacts database using the CNContactStore object. Every contact in the contacts database has a unique ID, which you access using the identifier property. The mutable and immutable versions of the same contact have the same identifier.

## Topics

### Identifying the Contact

- [identifier](contacts/cncontact/identifier.md)
- [contactType](contacts/cncontact/contacttype.md)
- [CNContactType](contacts/cncontacttype.md)

### Getting Name Information

- [namePrefix](contacts/cncontact/nameprefix.md)
- [givenName](contacts/cncontact/givenname.md)
- [middleName](contacts/cncontact/middlename.md)
- [familyName](contacts/cncontact/familyname.md)
- [previousFamilyName](contacts/cncontact/previousfamilyname.md)
- [nameSuffix](contacts/cncontact/namesuffix.md)
- [nickname](contacts/cncontact/nickname.md)
- [phoneticGivenName](contacts/cncontact/phoneticgivenname.md)
- [phoneticMiddleName](contacts/cncontact/phoneticmiddlename.md)
- [phoneticFamilyName](contacts/cncontact/phoneticfamilyname.md)

### Getting Work Information

- [jobTitle](contacts/cncontact/jobtitle.md)
- [departmentName](contacts/cncontact/departmentname.md)
- [organizationName](contacts/cncontact/organizationname.md)
- [phoneticOrganizationName](contacts/cncontact/phoneticorganizationname.md)

### Getting Addresses

- [postalAddresses](contacts/cncontact/postaladdresses.md)
- [emailAddresses](contacts/cncontact/emailaddresses.md)
- [urlAddresses](contacts/cncontact/urladdresses.md)

### Getting Phone Information

- [phoneNumbers](contacts/cncontact/phonenumbers.md)

### Getting Social Profiles

- [socialProfiles](contacts/cncontact/socialprofiles.md)

### Getting Birthday Information

- [birthday](contacts/cncontact/birthday.md)
- [nonGregorianBirthday](contacts/cncontact/nongregorianbirthday.md)
- [dates](contacts/cncontact/dates.md)

### Getting Notes

- [note](contacts/cncontact/note.md)

### Getting Contact Images

- [imageData](contacts/cncontact/imagedata.md)
- [thumbnailImageData](contacts/cncontact/thumbnailimagedata.md)
- [imageDataAvailable](contacts/cncontact/imagedataavailable.md)

### Getting Related Information

- [contactRelations](contacts/cncontact/contactrelations.md)
- [instantMessageAddresses](contacts/cncontact/instantmessageaddresses.md)

### Localizing Contact Data

- [localizedString(forKey:)](contacts/cncontact/localizedstring(forkey:).md)

### Comparing Contacts

- [descriptorForAllComparatorKeys()](contacts/cncontact/descriptorforallcomparatorkeys().md)
- [comparator(forNameSortOrder:)](contacts/cncontact/comparator(fornamesortorder:).md)
- [isUnifiedWithContact(withIdentifier:)](contacts/cncontact/isunifiedwithcontact(withidentifier:).md)
- [CNContactSortOrder](contacts/cncontactsortorder.md)

### Checking the Availability of Data

- [isKeyAvailable(_:)](contacts/cncontact/iskeyavailable(_:).md)
- [areKeysAvailable(_:)](contacts/cncontact/arekeysavailable(_:).md)

### Getting Search Predicates

- [predicateForContacts(matchingName:)](contacts/cncontact/predicateforcontacts(matchingname:).md)
- [predicateForContacts(withIdentifiers:)](contacts/cncontact/predicateforcontacts(withidentifiers:).md)
- [predicateForContactsInGroup(withIdentifier:)](contacts/cncontact/predicateforcontactsingroup(withidentifier:).md)
- [predicateForContactsInContainer(withIdentifier:)](contacts/cncontact/predicateforcontactsincontainer(withidentifier:).md)
- [predicateForContacts(matching:)](contacts/cncontact/predicateforcontacts(matching:).md)
- [predicateForContacts(matchingEmailAddress:)](contacts/cncontact/predicateforcontacts(matchingemailaddress:).md)

### Initializers

- [init(coder:)](contacts/cncontact/init(coder:).md)

### Instance Properties

- [debugDescription](contacts/cncontact/debugdescription.md)
- [description](contacts/cncontact/description.md)
- [shortDebugDescription](contacts/cncontact/shortdebugdescription.md)

### Type Methods

- [debugDescriptionForName(_:)](contacts/cncontact/debugdescriptionforname(_:).md)

## Relationships

### Inherits From

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

### Inherited By

- [CNMutableContact](contacts/cnmutablecontact.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [Identifiable](swift/identifiable.md)
- [NSCoding](foundation/nscoding.md)
- [NSCopying](foundation/nscopying.md)
- [NSItemProviderReading](foundation/nsitemproviderreading.md)
- [NSItemProviderWriting](foundation/nsitemproviderwriting.md)
- [NSMutableCopying](foundation/nsmutablecopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)

## See Also

### Contact data

- [CNMutableContact](contacts/cnmutablecontact.md)
- [Data Objects](contacts/data-objects.md)
- [Contact Keys](contacts/contact-keys.md)
