OC_AddressBook_通讯录写入
2015-08-11 20:53
309 查看
通讯录的写入,就是创建一个联系人到手机的通讯录中,如果看懂了通讯录的代码 看这个代码也是轻轻松松的了
//
// 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
//
// 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
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- iOS开发之路--微博OAuth授权_取得用户授权的accessToken
- ios通过按钮点击异步加载图片
- 加载带有手势识别器的XIB文件需注意哪些问题
- 仅需几行代码实现方便易用的状态栏指示器
- ios中图像进行压缩方法汇总