<!--
{
  "availability" : [
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AddressBook",
  "identifier" : "/documentation/AddressBook/ABPerson",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Address Book"
    ],
    "preciseIdentifier" : "c:objc(cs)ABPerson"
  },
  "title" : "ABPerson"
}
-->

# ABPerson

An object that encapsulates all information about a person in the Address Book database.

```
class ABPerson
```

## Overview

An `ABPerson` object corresponds to a single person record in the database. A person object contains the person’s name, company, address, email addresses, and phone numbers.

The `ABPerson` class is “toll-free bridged” with its procedural C opaque-type counterpart. This means that the `ABPersonRef` type is interchangeable in function or method calls with instances of the `ABPerson` class.

## Topics

### Managing Properties

[`addPropertiesAndTypes(_:)`](/documentation/AddressBook/ABPerson/addPropertiesAndTypes(_:))

Adds the given properties to all the records of this type in the Address Book database.

[`removeProperties(_:)`](/documentation/AddressBook/ABPerson/removeProperties(_:))

Removes the given properties from all the records of this type in the Address Book database.

[`properties()`](/documentation/AddressBook/ABPerson/properties())

Returns an array of  the names of all the properties for the record in the Address Book database.

[`type(ofProperty:)`](/documentation/AddressBook/ABPerson/type(ofProperty:))

Returns the type of a given property.

### Managing Linked People

[`linkedPeople()`](/documentation/AddressBook/ABPerson/linkedPeople())

Returns the array of all person records that are linked to the person this record represents.

### Managing Groups

[`parentGroups()`](/documentation/AddressBook/ABPerson/parentGroups())

Returns an array of the address book groups that this person belongs to.

### Managing Images

[`cancelLoadingImageData(forTag:)`](/documentation/AddressBook/ABPerson/cancelLoadingImageData(forTag:))

Cancels an asynchronous fetch of the images for a given tag.

[`beginLoadingImageData(for:)`](/documentation/AddressBook/ABPerson/beginLoadingImageData(for:))

Starts an asynchronous fetch for image data in all locations

[`imageData()`](/documentation/AddressBook/ABPerson/imageData())

Returns data that contains a picture of this person.

[`setImageData(_:)`](/documentation/AddressBook/ABPerson/setImageData(_:))

Sets the image for this person to the given data.

### Searching

[`searchElement(forProperty:label:key:value:comparison:)`](/documentation/AddressBook/ABPerson/searchElement(forProperty:label:key:value:comparison:))

Returns a search element object that specifies a query for records of this type.

### Importing and Exporting vCard Formatted Files

[`init(VCardRepresentation:)`](/documentation/AddressBook/ABPerson/init(VCardRepresentation:)-5c7h8)

Returns an `ABPerson` instance initialized with the given data.

[`vCardRepresentation()`](/documentation/AddressBook/ABPerson/vCardRepresentation())

Returns the vCard representation of the person record as a data object in vCard format.

### Constants

[Person Flags](/documentation/AddressBook/person-flags)

Settings that determine how person records are displayed.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)