O'Reilly logo

iOS 6 Programming Cookbook by Vandad Nahavandipoor

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required