Skip to main content

iOS Dev: Access Address Book in iOS6 (Permission)


In iOS 6 :  Access the Address Book details by this code:

-(BOOL)isABAddressBookCreateWithOptionsAvailable {
   return &ABAddressBookCreateWithOptions != NULL;
}

your method code :{

CFErrorRef error = NULL;

ABAddressBookRef addressBook;
//ABAddressBookRef addressBook = ABAddressBookCreate();

if ([self isABAddressBookCreateWithOptionsAvailable]) {
   addressBook = ABAddressBookCreateWithOptions(NULL,&error);

  ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
// callback can occur in background, address book must be accessed on thread it was created on
   dispatch_async(dispatch_get_main_queue(), ^{
        if (error) {
                      NSLog(@"error == %@",error);
       } else if (!granted) {
       NSLog(@"error == Not granted ");
    } else {
    // access granted
     bool wantToSaveChanges = YES;
     bool didSave;
     CFErrorRef error = NULL;
     if (ABAddressBookHasUnsavedChanges(addressBook)) {
            if (wantToSaveChanges) {
                         didSave = ABAddressBookSave(addressBook, &error);
                         if (!didSave) {/* Handle error here. */ NSLog(@"Not change");}
                         } else {
                        ABAddressBookRevert(addressBook);
                  }
            }
       }
     });
  });
 }
else {
}
Keep Coding :)

Comments