OC_AddressBook_通讯录写入

来源:互联网 发布:html5建站 编辑:程序博客网 时间:2024/05/21 04:22

通讯录的写入,就是创建一个联系人到手机的通讯录中,如果看懂了通讯录的代码 看这个代码也是轻轻松松的了

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


0 0