iPhone:在没有任何用户界面的情况下将联系人插入到通讯簿中[重复]

|| 这个问题已经在这里有了答案:
已邀请:
完成答案以将联系人添加到地址簿 添加地址簿框架
AddressBook.framework
AddressBookUI.framework
#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>
#import <AddressBook/ABPerson.h>



- (void)viewDidLoad {
  ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);

  if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined)  
    ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) {
        // First time access has been granted, add the contact
         [self addContact];
    });
}
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {
    // The user has previously given access, add the contact
     [self addContact];
}
else {
    // The user has previously denied access
    // Send an alert telling user to change privacy setting in settings app
}

}

 - (void)addContact {  
// Creating new entry  
 ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL); 
ABRecordRef person = ABPersonCreate();  

// Setting basic properties  
ABRecordSetValue(person, kABPersonFirstNameProperty, @\"Ondrej\" , nil);  
ABRecordSetValue(person, kABPersonLastNameProperty, @\"Rafaj\", nil);  
ABRecordSetValue(person, kABPersonJobTitleProperty, @\"Tech. director\", nil);  
ABRecordSetValue(person, kABPersonDepartmentProperty, @\"iPhone development department\", nil);  
ABRecordSetValue(person, kABPersonOrganizationProperty, @\"Fuerte international\", nil);  
ABRecordSetValue(person, kABPersonNoteProperty, @\"The best iPhone development studio in the UK :)\", nil);  

// Adding phone numbers  
ABMutableMultiValueRef phoneNumberMultiValue = ABMultiValueCreateMutable(kABMultiStringPropertyType);  
ABMultiValueAddValueAndLabel(phoneNumberMultiValue, @\"07972574949\", (CFStringRef)@\"iPhone\", NULL);  
ABMultiValueAddValueAndLabel(phoneNumberMultiValue, @\"01234567890\", (CFStringRef)@\"Work\", NULL);  
ABMultiValueAddValueAndLabel(phoneNumberMultiValue, @\"08701234567\", (CFStringRef)@\"0870\", NULL);  
ABRecordSetValue(person, kABPersonPhoneProperty, phoneNumberMultiValue, nil);  
CFRelease(phoneNumberMultiValue);  

// Adding url  
ABMutableMultiValueRef urlMultiValue = ABMultiValueCreateMutable(kABMultiStringPropertyType);  
ABMultiValueAddValueAndLabel(urlMultiValue, @\"http://www.fuerteint.com\", kABPersonHomePageLabel, NULL);  
ABRecordSetValue(person, kABPersonURLProperty, urlMultiValue, nil);  
CFRelease(urlMultiValue);  

// Adding emails  
ABMutableMultiValueRef emailMultiValue = ABMultiValueCreateMutable(kABMultiStringPropertyType);  
ABMultiValueAddValueAndLabel(emailMultiValue, @\"info@fuerteint.com\", (CFStringRef)@\"Global\", NULL);  
ABMultiValueAddValueAndLabel(emailMultiValue, @\"ondrej.rafaj@fuerteint.com\", (CFStringRef)@\"Work\", NULL);  
ABRecordSetValue(person, kABPersonURLProperty, emailMultiValue, nil);  
CFRelease(emailMultiValue);  

// Adding address  
ABMutableMultiValueRef addressMultipleValue = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);  
NSMutableDictionary *addressDictionary = [[NSMutableDictionary alloc] init];  
[addressDictionary setObject:@\"8-15 Dereham Place\" forKey:(NSString *)kABPersonAddressStreetKey];  
[addressDictionary setObject:@\"London\" forKey:(NSString *)kABPersonAddressCityKey];  
[addressDictionary setObject:@\"EC2A 3HJ\" forKey:(NSString *)kABPersonAddressZIPKey];  
[addressDictionary setObject:@\"United Kingdom\" forKey:(NSString *)kABPersonAddressCountryKey];  
[addressDictionary setObject:@\"gb\" forKey:(NSString *)kABPersonAddressCountryCodeKey];  
ABMultiValueAddValueAndLabel(addressMultipleValue, addressDictionary, kABHomeLabel, NULL);  
[addressDictionary release];  
ABRecordSetValue(person, kABPersonAddressProperty, addressMultipleValue, nil);  
CFRelease(addressMultipleValue);  

// Adding person to the address book  
ABAddressBookAddRecord(addressBook, person, nil);  
CFRelease(addressBook);  

// Creating view controller for a new contact  
ABNewPersonViewController *c = [[ABNewPersonViewController alloc] init];  
[c setNewPersonViewDelegate:self];  
[c setDisplayedPerson:person];  
CFRelease(person);  
[self.navigationController pushViewController:c animated:YES];  
[c release];  
}  

要回复问题请先登录注册