Revision: 26683
Updated Code
at May 6, 2010 11:01 by espinallab
Updated Code
//This code is working properly in my project. Hope it helps you too. #pragma mark - #pragma mark addToAddressBook - (IBAction)addToAddressBook { ABAddressBookRef addressBook = ABAddressBookCreate(); ABRecordRef person = ABPersonCreate(); CFErrorRef error = NULL; ABRecordSetValue(person, kABPersonOrganizationProperty, venue.name, &error); // a single url as the home page ABMutableMultiValueRef urlMultiValue = ABMultiValueCreateMutable(kABStringPropertyType); ABMultiValueAddValueAndLabel(urlMultiValue, @"http://www.clubplanet.com", kABPersonHomePageLabel, NULL); ABRecordSetValue(person, kABPersonURLProperty, urlMultiValue, &error); CFRelease(urlMultiValue); if (venue.phone) { ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType); ABMultiValueAddValueAndLabel(multiPhone, venue.phone, kABPersonPhoneMainLabel, NULL); ABRecordSetValue(person, kABPersonPhoneProperty, multiPhone, &error); CFRelease(multiPhone); } ABMutableMultiValueRef multiAddress = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType); //Create a Disctionary Array to hold the address NSMutableDictionary *addressDictionary = [[NSMutableDictionary alloc] init]; if (venue.address) [addressDictionary setObject:venue.address forKey:(NSString *)kABPersonAddressStreetKey]; if (venue.city) [addressDictionary setObject:venue.city forKey:(NSString *)kABPersonAddressCityKey]; if (venue.state) [addressDictionary setObject:venue.state forKey:(NSString *)kABPersonAddressStateKey]; if (venue.zip) [addressDictionary setObject:venue.zip forKey:(NSString *)kABPersonAddressZIPKey]; ABMultiValueAddValueAndLabel(multiAddress, addressDictionary, kABWorkLabel, NULL); ABRecordSetValue(person, kABPersonAddressProperty, multiAddress,&error); CFRelease(multiAddress); ABAddressBookAddRecord(addressBook, person, &error); ABAddressBookSave(addressBook, &error); if (error != NULL) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Could not create unknown user" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil]; [alert show]; [alert release]; } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Add To Contacts" message:[NSString stringWithFormat:@"%@ was added to your contact successfully!", venue.name] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; [alert release]; } CFRelease(person); }
Revision: 26682
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 6, 2010 10:40 by espinallab
Initial Code
//This code is working properly in my project. Hope it helps you too. #pragma mark - #pragma mark addToAddressBook - (IBAction)addToAddressBook { ABAddressBookRef addressBook = ABAddressBookCreate(); ABRecordRef person = ABPersonCreate(); CFErrorRef error = NULL; ABRecordSetValue(person, kABPersonOrganizationProperty, venue.name, &error); // a single url as the home page ABMutableMultiValueRef urlMultiValue = ABMultiValueCreateMutable(kABStringPropertyType); ABMultiValueAddValueAndLabel(urlMultiValue, @"http://www.clubplanet.com", kABPersonHomePageLabel, NULL); ABRecordSetValue(person, kABPersonURLProperty, urlMultiValue, &error); CFRelease(urlMultiValue); ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType); ABMultiValueAddValueAndLabel(multiPhone, venue.phone, kABPersonPhoneMainLabel, NULL); ABRecordSetValue(person, kABPersonPhoneProperty, multiPhone, &error); CFRelease(multiPhone); ABMutableMultiValueRef multiAddress = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType); //Create a Disctionary Array to hold the address NSMutableDictionary *addressDictionary = [[NSMutableDictionary alloc] init]; [addressDictionary setObject:venue.address forKey:(NSString *)kABPersonAddressStreetKey]; [addressDictionary setObject:venue.city forKey:(NSString *)kABPersonAddressCityKey]; [addressDictionary setObject:venue.state forKey:(NSString *)kABPersonAddressStateKey]; [addressDictionary setObject:venue.zip forKey:(NSString *)kABPersonAddressZIPKey]; ABMultiValueAddValueAndLabel(multiAddress, addressDictionary, kABWorkLabel, NULL); ABRecordSetValue(person, kABPersonAddressProperty, multiAddress,&error); CFRelease(multiAddress); ABAddressBookAddRecord(addressBook, person, &error); ABAddressBookSave(addressBook, &error); if (error != NULL) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Could not create unknown user" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil]; [alert show]; [alert release]; } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Add To Contacts" message:[NSString stringWithFormat:@"%@ was added to your contact successfully!", venue.name] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; [alert release]; } CFRelease(person); }
Initial URL
http://www.espinallab.com
Initial Description
Add the following framework "AddressBook.framework" to your project Make sure to import these header files. #import "AddressBook/ABAddressBook.h" #import "AddressBook/ABPerson.h" #import "AddressBook/ABMultiValue.h"
Initial Title
Adding entry to AddressBook iPhone
Initial Tags
iphone
Initial Language
Objective C