11.1. Requesting Access to the Address Book

Problem

You want to start accessing the user’s address book, which requires the user to have granted your app access to the user’s address book database. You want to check whether you have access so that you don’t receive a runtime error when you attempt access.

Solution

In order to find the current authorization state of your app, call the function ABAddressBookGetAuthorizationStatus in the Address Book framework. This function can return any of the following values:

kABAuthorizationStatusNotDetermined

The user has not yet decided whether she would like to grant access to your application.

kABAuthorizationStatusDenied

The user has explicitly denied your application from having access to the address book.

kABAuthorizationStatusAuthorized

The user has authorized your application to have access to the address book on her device.

kABAuthorizationStatusRestricted

Parental controls or other permissions configured on the iOS device prevent your app from accessing and interacting with the address book database on the device.

If you find out that the status that you received from the ABAddressBookGetAuthorizationStatus function is kABAuthorizationStatusNotDetermined, you can use the ABAddressBookRequestAccessWithCompletion function to ask for permission to access the user’s address book database. You have to pass two parameters to this function:

An Address Book reference of type ABAddressBookRef

The instance of the address book that you want to access.

A completion ...

Get iOS 6 Programming Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.