ios 开发,通讯录信息调用常用方法,这个比较全,不用再整理了

简介:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
ABAddressBookRef addressBook = ABAddressBookCreate();
 
     CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(addressBook);
     
     for ( int  i = 0; i < CFArrayGetCount(results); i++)
     {
         ABRecordRef person = CFArrayGetValueAtIndex(results, i);
         //读取firstname
         NSString  *personName = ( NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
         if (personName !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "\n姓名:%@\n" ,personName];
         //读取lastname
         NSString  *lastname = ( NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);
         if (lastname !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,lastname];
         //读取middlename
         NSString  *middlename = ( NSString *)ABRecordCopyValue(person, kABPersonMiddleNameProperty);
         if (middlename !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,middlename];
         //读取prefix前缀
         NSString  *prefix = ( NSString *)ABRecordCopyValue(person, kABPersonPrefixProperty);
         if (prefix !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,prefix];
         //读取suffix后缀
         NSString  *suffix = ( NSString *)ABRecordCopyValue(person, kABPers*****uffixProperty);
         if (suffix !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,suffix];
         //读取nickname呢称
         NSString  *nickname = ( NSString *)ABRecordCopyValue(person, kABPersonNicknameProperty);
         if (nickname !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,nickname];
         //读取firstname拼音音标
         NSString  *firstnamePhonetic = ( NSString *)ABRecordCopyValue(person, kABPersonFirstNamePhoneticProperty);
         if (firstnamePhonetic !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,firstnamePhonetic];
         //读取lastname拼音音标
         NSString  *lastnamePhonetic = ( NSString *)ABRecordCopyValue(person, kABPersonLastNamePhoneticProperty);
         if (lastnamePhonetic !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,lastnamePhonetic];
         //读取middlename拼音音标
         NSString  *middlenamePhonetic = ( NSString *)ABRecordCopyValue(person, kABPersonMiddleNamePhoneticProperty);
         if (middlenamePhonetic !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,middlenamePhonetic];
         //读取organization公司
         NSString  *organization = ( NSString *)ABRecordCopyValue(person, kABPersonOrganizationProperty);
         if (organization !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,organization];
         //读取jobtitle工作
         NSString  *jobtitle = ( NSString *)ABRecordCopyValue(person, kABPersonJobTitleProperty);
         if (jobtitle !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,jobtitle];
         //读取department部门
         NSString  *department = ( NSString *)ABRecordCopyValue(person, kABPersonDepartmentProperty);
         if (department !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,department];
         //读取birthday生日
         NSDate  *birthday = ( NSDate *)ABRecordCopyValue(person, kABPersonBirthdayProperty);
         if (birthday !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,birthday];
         //读取note备忘录
         NSString  *note = ( NSString *)ABRecordCopyValue(person, kABPersonNoteProperty);
         if (note !=  nil )
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,note];
         //第一次添加该条记录的时间
         NSString  *firstknow = ( NSString *)ABRecordCopyValue(person, kABPersonCreationDateProperty);
         NSLog (@ "第一次添加该条记录的时间%@\n" ,firstknow);
         //最后一次修改該条记录的时间
         NSString  *lastknow = ( NSString *)ABRecordCopyValue(person, kABPersonModificationDateProperty);
         NSLog (@ "最后一次修改該条记录的时间%@\n" ,lastknow);
         
         //获取email多值
         ABMultiValueRef email = ABRecordCopyValue(person, kABPersonEmailProperty);
         int  emailcount = ABMultiValueGetCount(email);   
         for  ( int  x = 0; x < emailcount; x++)
         {
             //获取email Label
             NSString * emailLabel = ( NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(email, x));
             //获取email值
             NSString * emailContent = ( NSString *)ABMultiValueCopyValueAtIndex(email, x);
             textView.text = [textView.text stringByAppendingFormat:@ "%@:%@\n" ,emailLabel,emailContent];
         }
         //读取地址多值
         ABMultiValueRef address = ABRecordCopyValue(person, kABPersonAddressProperty);
         int  count = ABMultiValueGetCount(address);   
         
         for ( int  j = 0; j < count; j++)
         {
             //获取地址Label
             NSString * addressLabel = ( NSString *)ABMultiValueCopyLabelAtIndex(address, j);
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,addressLabel];
             //获取該label下的地址6属性
             NSDictionary * personaddress =( NSDictionary *) ABMultiValueCopyValueAtIndex(address, j);       
             NSString * country = [personaddress valueForKey:( NSString  *)kABPersonAddressCountryKey];
             if (country !=  nil )
                 textView.text = [textView.text stringByAppendingFormat:@ "国家:%@\n" ,country];
             NSString * city = [personaddress valueForKey:( NSString  *)kABPersonAddressCityKey];
             if (city !=  nil )
                 textView.text = [textView.text stringByAppendingFormat:@ "城市:%@\n" ,city];
             NSString * state = [personaddress valueForKey:( NSString  *)kABPersonAddressStateKey];
             if (state !=  nil )
                 textView.text = [textView.text stringByAppendingFormat:@ "省:%@\n" ,state];
             NSString * street = [personaddress valueForKey:( NSString  *)kABPersonAddressStreetKey];
             if (street !=  nil )
                 textView.text = [textView.text stringByAppendingFormat:@ "街道:%@\n" ,street];
             NSString * zip = [personaddress valueForKey:( NSString  *)kABPersonAddressZIPKey];
             if (zip !=  nil )
                 textView.text = [textView.text stringByAppendingFormat:@ "邮编:%@\n" ,zip];   
             NSString * coutntrycode = [personaddress valueForKey:( NSString  *)kABPersonAddressCountryCodeKey];
             if (coutntrycode !=  nil )
                 textView.text = [textView.text stringByAppendingFormat:@ "国家编号:%@\n" ,coutntrycode];   
         }
         
         //获取dates多值
         ABMultiValueRef dates = ABRecordCopyValue(person, kABPersonDateProperty);
         int  datescount = ABMultiValueGetCount(dates);   
         for  ( int  y = 0; y < datescount; y++)
         {
             //获取dates Label
             NSString * datesLabel = ( NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(dates, y));
             //获取dates值
             NSString * datesContent = ( NSString *)ABMultiValueCopyValueAtIndex(dates, y);
             textView.text = [textView.text stringByAppendingFormat:@ "%@:%@\n" ,datesLabel,datesContent];
         }
         //获取kind值
         CFNumberRef recordType = ABRecordCopyValue(person, kABPersonKindProperty);
         if  (recordType == kABPersonKindOrganization) {
             // it's a company
             NSLog (@ "it's a company\n" );
         else  {
             // it's a person, resource, or room
             NSLog (@ "it's a person, resource, or room\n" );
         }
         
         
         //获取IM多值
         ABMultiValueRef instantMessage = ABRecordCopyValue(person, kABPersonInstantMessageProperty);
         for  ( int  l = 1; l < ABMultiValueGetCount(instantMessage); l++)
         {
             //获取IM Label
             NSString * instantMessageLabel = ( NSString *)ABMultiValueCopyLabelAtIndex(instantMessage, l);
             textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,instantMessageLabel];
             //获取該label下的2属性
             NSDictionary * instantMessageContent =( NSDictionary *) ABMultiValueCopyValueAtIndex(instantMessage, l);       
             NSString * username = [instantMessageContent valueForKey:( NSString  *)kABPersonInstantMessageUsernameKey];
             if (username !=  nil )
                 textView.text = [textView.text stringByAppendingFormat:@ "username:%@\n" ,username];
             
             NSString * service = [instantMessageContent valueForKey:( NSString  *)kABPersonInstantMessageServiceKey];
             if (service !=  nil )
                 textView.text = [textView.text stringByAppendingFormat:@ "service:%@\n" ,service];           
         }
         
         //读取电话多值
         ABMultiValueRef phone = ABRecordCopyValue(person, kABPersonPhoneProperty);
         for  ( int  k = 0; k<ABMultiValueGetCount(phone); k++)
         {
             //获取电话Label
             NSString  * personPhoneLabel = ( NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(phone, k));
             //获取該Label下的电话值
             NSString  * personPhone = ( NSString *)ABMultiValueCopyValueAtIndex(phone, k);
                 
             textView.text = [textView.text stringByAppendingFormat:@ "%@:%@\n" ,personPhoneLabel,personPhone];
         }
         
         //获取URL多值
         ABMultiValueRef url = ABRecordCopyValue(person, kABPersonURLProperty);
         for  ( int  m = 0; m < ABMultiValueGetCount(url); m++)
         {
             //获取电话Label
             NSString  * urlLabel = ( NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(url, m));
             //获取該Label下的电话值
             NSString  * urlContent = ( NSString *)ABMultiValueCopyValueAtIndex(url,m);
             
             textView.text = [textView.text stringByAppendingFormat:@ "%@:%@\n" ,urlLabel,urlContent];
         }
         
         //读取照片
         NSData  *image = ( NSData *)ABPersonCopyImageData(person);
             
 
         UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(200, 0, 50, 50)];
         [myImage setImage:[UIImage imageWithData:image]];
         myImage.opaque =  YES ;
         [textView addSubview:myImage];
         
 
     
     }
     
     CFRelease(results);
     CFRelease(addressBook);

 



本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3472867.html,如需转载请自行联系原作者

目录
相关文章
|
4天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
23 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
1月前
|
iOS开发 开发者
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
143 67
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
|
2月前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
90 11
|
2月前
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
145 66
|
2月前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
173 3
|
物联网 Android开发 iOS开发
iOS开发 - 蓝牙学习的总结
iOS开发 - 蓝牙学习的总结
204 0
|
Web App开发 iOS开发
IOS开发博客学习
M了个J :http://www.cnblogs.com/mjios/tag/objective-c/ http://www.cnblogs.com/tianjian/p/3358602.html  Cocos2d-x  VS环境配置  泰然论坛:http://www.
756 0
|
C# iOS开发 数据可视化
IOS开发---菜鸟学习之路--(一)
PS(废话):   看了那么多的博客文章,发现大部分人都一直在强调写技术博客的重要性,索性自己也耐着性子写写看吧。   写博客的重要性之类的说明,我就不做复制黏贴的工作了。因为自己没有写过多少,所也不清楚是不是真的能象他们说的那样有那么多的好处。
983 0
|
XML JSON 数据格式
IOS开发---菜鸟学习之路--(二)-数据获取
第二篇了. 本篇要讲的是数据获取. 为什么将数据获取放在第二篇就讲呢? 因为我在看别人教程的时候都是先讲控件的属性,然后怎么用控件开始. 可是毕竟咱们也是有一定开发经验的人..所以很自然就想先知道怎么从网络上获取数据(毕竟现在开发的软件一般都是需要联网来运行的) 所以如果能在一开始就知道 数据连接到底 怎么实现,到底麻烦不麻烦.
1056 0
|
JSON iOS开发 数据格式
IOS开发---菜鸟学习之路--(三)-数据解析
第三篇 上一篇我们讲了如何通过NSURL类来获取数据, 这一章我们来讲下对于获取过来的数据如何解析. 好了直接进入正文吧. 正文: 上一篇讲了 我们获取过来的数据格式是JSON格式的 大家可以搜下对应JSON转换类就可以按照对应的内容进行数据转换了 我这边呢就提供一下我的转换方式 我...
867 0

热门文章

最新文章

  • 1
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    24
  • 2
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    33
  • 3
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    29
  • 4
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    23
  • 5
    uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
    143
  • 6
    【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
    234
  • 7
    app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
    90
  • 8
    深入探索iOS开发中的SwiftUI框架
    145
  • 9
    ios样式开关按钮jQuery插件
    58
  • 10
    Android与iOS生态差异深度剖析:技术架构、开发体验与市场影响####
    75