<!--
{
  "documentType" : "article",
  "framework" : "AddressBook",
  "identifier" : "/documentation/AddressBook/addressbook-data-types",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "AddressBook Data Types"
}
-->

# AddressBook Data Types

Get the data types you use to specify Address Book information.

## Topics

### Callbacks

[`typealias ABImageClientCallback`](/documentation/AddressBook/ABImageClientCallback)

Prototype of a callback function used to notify an application when an asynchronous image fetch is complete.

[`typedef const struct __CFString *(*)(struct __ABPerson *, const struct __CFString *) ABActionCopyTitleCallback;`](/documentation/AddressBook/ABActionCopyTitleCallback)

The title of the menu item for the action.

[`typedef unsigned char (*)(struct __ABPerson *, const struct __CFString *) ABActionEnabledCallback;`](/documentation/AddressBook/ABActionEnabledCallback)

Return `true` ifthe action menu item should be enabled, `false` otherwise.If the property returned by `ABActionGetPropertyCallback` isa multi-value property, `identifier` contains theunique identifier of the value selected.

[`typedef const struct __CFString *(*)(void) ABActionGetPropertyCallback;`](/documentation/AddressBook/ABActionGetPropertyCallback)

Return the property the action applies to.

[`typedef void (*)(struct __ABPerson *, const struct __CFString *) ABActionSelectedCallback;`](/documentation/AddressBook/ABActionSelectedCallback)

Execute the action. If the property returnedby [`ABActionGetPropertyCallback`](/documentation/AddressBook/ABActionGetPropertyCallback) isa multi-value property, `identifier` containsthe unique identifier of the value selected; otherwise, identifieris `NULL`.

### Miscellaneous

[`typedef OptionBits ABPickerAttributes;`](/documentation/AddressBook/ABPickerAttributes)

A bitfield used to specify the selection behavior for the values of multi-value properties.

[`typealias ABPropertyType`](/documentation/AddressBook/ABPropertyType)

These are the possible types of ABRecord properties.

[`typealias ABSearchComparison`](/documentation/AddressBook/ABSearchComparison)

Constants used to specify the type of comparison beingmade.

[`typealias ABSearchConjunction`](/documentation/AddressBook/ABSearchConjunction)

Constants used to create compound search elements.

### Deprecated

[`typealias ABRecord`](/documentation/AddressBook/ABRecord-swift.typealias)

A reference to an ABRecord object or any of its derivedopaque types.

[`typealias ABAddressBookRequestAccessCompletionHandler`](/documentation/AddressBook/ABAddressBookRequestAccessCompletionHandler)

Definition for a block callback invoked when an access request has completed.

[`typealias ABExternalChangeCallback`](/documentation/AddressBook/ABExternalChangeCallback)

Prototype for a function callback invoked on an address book when the Address Book database is modified by another address book instance.

[`typealias ABMultiValueIdentifier`](/documentation/AddressBook/ABMultiValueIdentifier)

Identifies multivalue properties.

[`typealias ABPersonCompositeNameFormat`](/documentation/AddressBook/ABPersonCompositeNameFormat)

Indicates a person-name display format.

[`typealias ABPersonSortOrdering`](/documentation/AddressBook/ABPersonSortOrdering)

Indicates a person sort ordering.

[`typealias ABPropertyID`](/documentation/AddressBook/ABPropertyID)

Integer that identifies a record property.

[`typealias ABRecordID`](/documentation/AddressBook/ABRecordID)

Integer that identifies a record.

[`typealias ABRecordType`](/documentation/AddressBook/ABRecordType)

Integer that identifies a record type.

[`typealias ABSourceType`](/documentation/AddressBook/ABSourceType)

Indicates a source type. See `Source Properties`.



---

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)