通讯录的写入,就是创建一个联系人到手机的通讯录中,如果看懂了通讯录的代码 看这个代码也是轻轻松松的了
//
// WriteToAddressBookViewController.m
// UIfont
//
// Created by iOS Developer on 15/8/11.
// Copyright (c) 2015年 iOS Developer. All rights reserved.
//
#import "WriteToAddressBookViewController.h"
#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>
@interface WriteToAddressBookViewController ()
@end
@implementation WriteToAddressBookViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
if(ABAddressBookGetAuthorizationStatus() == 1 || ABAddressBookGetAuthorizationStatus() == 2)
{//还是要首先判断通讯隐私目前状态,1和2表示禁止访问,提示用户打开权限
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"alert"
message:@"你已经禁止访问通讯录,请在设置_隐私_通讯录中打开权限"
delegate:self
cancelButtonTitle:@"continue"
otherButtonTitles:nil, nil];
[alert show];
return;
}
ABAddressBookRef iPhoneAddressBook = ABAddressBookCreateWithOptions(nil, nil);//打开通讯录
ABRecordRef newPerson = ABPersonCreate(); //新建一个联系人
CFErrorRef error = NULL;
//单项写入,第一个参数固定是联系人,第二个参数是单项名,第三个参数是你添加的数据,第四个是error
ABRecordSetValue(newPerson, kABPersonFirstNameProperty, @"John", &error); //设置联系人的姓
ABRecordSetValue(newPerson, kABPersonLastNameProperty, @"Doe", &error); //设置联系人的名
//多项写入
ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);//初始化电话项
//2、给这个项里的各个属性赋值,第一个参数固定是刚刚找到的这个多项,第二个参数是要添加的数据,第三个可变,是你想添加的那个属性,
ABMultiValueAddValueAndLabel(multiPhone, @"1-555-555-5555", kABPersonPhoneMainLabel, NULL);//设置了连续三个电话号码,分别对应三个电话类型
ABMultiValueAddValueAndLabel(multiPhone, @"1-123-456-7890", kABPersonPhoneMobileLabel, NULL);
ABMultiValueAddValueAndLabel(multiPhone, @"1-987-654-3210", kABOtherLabel, NULL);
//3、把写好内容的联系人存入新建联系人中,第一个参数是人,第二个参数是联系人信息,第三个参数写入内容的项,第四个是error
ABRecordSetValue(newPerson, kABPersonPhoneProperty, multiPhone,&error);
CFRelease(multiPhone);//释放电话响对象
//保存新建联系人到通讯录
ABAddressBookAddRecord(iPhoneAddressBook, newPerson, &error);
ABAddressBookSave(iPhoneAddressBook, &error);
//如果有错,查看一下错误
if (error != NULL)
{
NSLog(@"fail");
}
}
@end