介绍
人们的联系信息和其它个人信息存储在一个集中的数据库中,ios的Address Book 技术就是用来在各个应用中分享这些信息的。这项技术有下面几个部分:
1.提供了访问联系方式信息
2.Address Book UI 框架提供了用户界面来展示这些信息
3.Address Book 数据库存储了这些数据
1.访问用户Address Book 数据库
2.提示用户一些联系信息
3.给用户展示联系信息
4.改变用户Address Book 数据
为了让你能够彻底理解这个文档,你应该掌握导航控制器和视图控制器(view controllee),理解代理和协议
注意:在iOS和mac上使用这项技术显示出来的界面是不同的
快速入门教程
目的:创建一个应用,让用户从他的通讯录种选择一个人来展示这个人的姓名和电话
1.当然是创建项目啦,选择single View ,并且还要导入Address Book UI 和Address Book 框架到你项目里哦,看不懂的留言
人们的联系信息和其它个人信息存储在一个集中的数据库中,ios的Address Book 技术就是用来在各个应用中分享这些信息的。这项技术有下面几个部分:
1.提供了访问联系方式信息
2.Address Book UI 框架提供了用户界面来展示这些信息
3.Address Book 数据库存储了这些数据
4.联系应用(通讯录)提供了一种方法来访问它们的联系方式信息
这篇文章包含了Address Book 技术一些关键的概念并且讲解了你能做的一些基本操作。当你在你的应用添加了这项技术后,用户将可以在使用其它app时访问你的联系信息,比如 你应用里的邮件和文本。你将可以做到以下几点:1.访问用户Address Book 数据库
2.提示用户一些联系信息
3.给用户展示联系信息
4.改变用户Address Book 数据
为了让你能够彻底理解这个文档,你应该掌握导航控制器和视图控制器(view controllee),理解代理和协议
注意:在iOS和mac上使用这项技术显示出来的界面是不同的
快速入门教程
目的:创建一个应用,让用户从他的通讯录种选择一个人来展示这个人的姓名和电话
1.当然是创建项目啦,选择single View ,并且还要导入Address Book UI 和Address Book 框架到你项目里哦,看不懂的留言
2.搭建UI,这个随便
3.接下来是代码:
#import "ViewController.h"
#import <AddressBookUI/AddressBookUI.h>
@interface ViewController ()<ABPeoplePickerNavigationControllerDelegate>// Address Book 代理
- (IBAction)showPicker:(id)sender; // 按钮方法
@property (weak, nonatomic) IBOutlet UILabel *xingming; // 姓名
@property (weak, nonatomic) IBOutlet UILabel *shouji; // 手机号码
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)showPicker:(id)sender {
// 创建选人的控制器
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
// 设置代理
picker.peoplePickerDelegate = self;
// 通过modal方式展示控制器
[self presentModalViewController:picker animated:YES];
}
// 点击取消时调用
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker
{
[self dismissViewControllerAnimated:YES completion:nil];
}
// 点击时调用
- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person
{
[self displayPerson:person];
[self dismissViewControllerAnimated:YES completion:nil];
}
// 展示个人信息
- (void)displayPerson:(ABRecordRef)person
{
// 获取姓名,__bridge_transfer是自动转换后后面会自动release
NSString *name = (__bridge_transfer NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty);
self.xingming.text = name;
// 手机
NSString *phone = nil;
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
if(ABMultiValueGetCount(phoneNumbers)){
phone = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
}else{
phone = @"没有电话";
}
self.shouji.text = phone;
CFRelease(phoneNumbers);
}
4.选择第一个效果图
总结:很少写这些东东,比较粗糙,大家不要咬文嚼字,重在理解,关于上面的一些简介属本人的一些硬翻译,水平有限,请多多包涵