OC_AddressBook_通讯录写入

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值