1.添加AddressBookUI.framework框架

2控制器中实现

#import "ViewController.h"

#import <AddressBookUI/AddressBookUI.h>

@interface ViewController ()<ABPeoplePickerNavigationControllerDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

//1创建联系人选择控制器

ABPeoplePickerNavigationController *peoPick=[[ABPeoplePickerNavigationController alloc]init];

//2 设置自己的代理,不能设置成父类的代理

peoPick.peoplePickerDelegate=self;

//3 展示控制器

[self presentViewController:peoPick animated:YES completion:nil];

}

//选择一个联系人就会调用

-(void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person

{

//定一个CF语言字符串

CFStringRef firststr=ABRecordCopyValue(person, kABPersonFirstNameProperty);

CFStringRef laststr=ABRecordCopyValue(person, kABPersonLastNameProperty);

//桥接的三种方式

//1__bridge NSString * -->把cf下的变量转换为oc下的对象,不转换权限

//2__bridge_transfer NSString * -->把cf下的变量转换为oc下的对象,做权限转换

//2__bridge_retained CF-->cf下的变量转换为OC的

NSString*first=(__bridge_transfer  NSString *)(firststr);

NSString*last=(__bridge NSString *)(laststr);

NSLog(@"%@, %@",first,last);

//first 不需要释放,last需要释放,如果对于空对象释放,程序直接崩溃

if (laststr) {

CFRelease(laststr);

}

//定义CF下的数组

ABMultiValueRef multiValue=ABRecordCopyValue(person, kABPersonPhoneProperty);

//取得 multivalue的个数

CFIndex index=ABMultiValueGetCount(multiValue);

for (CFIndex i=0; i<index; i++) {

CFStringRef phone=ABMultiValueCopyValueAtIndex(multiValue, i);

NSString *phonestr=(__bridge_transfer  NSString *)(phone);

NSLog(@"%@",phonestr);

}

if (multiValue) {

CFRelease(multiValue);

}

}

//-(void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier

//{

//    //property,对应某一个人某个的信息

//    NSLog(@"%zd",property);

//}

@end

通讯录(ios自带有界面)的更多相关文章

  1. 【新手--android日记】实现IOS风格电话界面

    [前言--新手日记] 开始学习android开发,通过做一个通讯录练习,打算实现各种自己想实现的功能. 新手作品,技术含量很浅.主要是记录自己的学习过程. 纯学习之用,求评论,求建议,求教导. [正题 ...

  2. Unity iOS混合开发界面切换思路

    Unity iOS混合开发界面切换思路 最近有很多博友QQ 私信 或则 留言联系我,请教iOS和Unity界面之前相互切换的问题,源代码就不私下发你们了,界面跳转功能的代码我直接贴到下面好了,顺带说i ...

  3. iOS 简单引导界面

    代码地址如下:http://www.demodashi.com/demo/11607.html 前言 现在很多APP在用户第一次用的时候,由于用户可能并不知道其中一些功能点的时候,这个时候就需要我们来 ...

  4. 推荐一个iOS应用UI界面设计站点

    Patterns是一个分享ios应用UI界面的站点,专注于分享iOS应用UI界面的细节.依照设计元素进行分类,依照iOS经常使用功能对各类UI进行分类展示. 链接:url=http%3A%2F%2Fw ...

  5. 通讯录(ios自带无界面)

    1,添加框架AddressBook.framework 2,请求权限认证,在Appdelegate.m文件中 - (BOOL)application:(UIApplication *)applicat ...

  6. iOS interface guidelines (界面设计指南)<一>

    一.      为iOS而设计 1.iOS体现的主题: (1)Deference(顺从):UI的存在就是为了让顾客更加容易理解和进行交互,而不是要和顾客玩智力游戏 (2)Clarity(清晰):在每个 ...

  7. iOS 在任意界面 Dismiss Keyboard

    最近由于项目需要,有些时候我们需要在任意时刻dismiss掉键盘. 很自然的我们会想到键盘通知 UIKeyboardDidShowNotification和UIKeyboardDidHideNotif ...

  8. iOS设置某个界面强制横屏,进入就横屏

    最近有一个项目,例如:A界面跳转到B界面,A界面是竖屏的,B界面进入就要横屏. 花了半天的时间在网上搜索解决方案,有些论坛的大牛也就贴两行代码,具体实现也没有,对我们这种菜鸟造成一万点真实伤害.为了避 ...

  9. iOS app应用界面加载卡顿的问题

    刚发布版本,忽然发现加载界面需要3-5秒延迟,那么问题来了. 首先,发现问题: 1.看代码,基于之前版本更新都没出问题,还是比较确信不是代码中的bug,以防万一,还是仔细看了下关于界面跳转部分的代码, ...

随机推荐

  1. python读写文件时中文的转码问题

    读写文件都要将中文转为unicode字符. 读文件: u = unicode(s, 'gbk') 这里不能使用encode 写文件: u = encode('utf')

  2. Html5 postMessage

    解释: 跨文档消息传输Cross Document Messaging. 编写代码前注意判断浏览器是否支持Html5 实例: b页面向a页面发送消息. <!DOCTYPE> <htm ...

  3. HDU 4865 Peter's Hobby(概率、dp、log)

    给出2个影响矩阵,一个是当天天气对湿度的影响,一个是前一天天气对当天天气的影响. 即在晴天(阴天.雨天)发生Dry(Dryish.Damp.Soggy)的概率,以及前一天晴天(阴天.雨天)而今天发生晴 ...

  4. SQL Server case表达式的用法

    ★CASE表达式是一个标量表达式,它基于条件逻辑来返回一个值.因为CASE是一个标量表达式,所以它可以应用在SELECT.WHERE.HAVING以及ORDER BY子句中. CASE表达式有两种格式 ...

  5. 【linux】vim的一些快捷键

    ctrl+y  :重复上一行内容 v+移动光标  :选择内容 y  :复制选中的内容 p  :在光标处粘贴复制的内容 ctrl+v :进入列模式,可以选择多列数据 dd :剪切一行,也可做删除一行使用

  6. [C#]Datatable和json互相转换操作

    #region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> ...

  7. CCF 最大的矩形

    问题描述 试题编号: 3 试题名称: 最大的矩形 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个 ...

  8. Html5 新标签

    ⒈ <audio></audio> 定义声音<autoplay></autoplay> 该属性出现,音频就绪后马上播放<controls>& ...

  9. python基础——第三方模块

    python基础——第三方模块 在Python中,安装第三方模块,是通过包管理工具pip完成的.  如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了.  如果你正在使用Window ...

  10. Ubuntu之MaxScale安装配置

    原文github:https://github.com/mariadb-corporation/MaxScale/blob/develop/Documentation/Documentation-Co ...