
正文
iOS-通讯录(无界面)
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px 'PingFang SC'; color: #1e9421}
span.s1 {font-variant-ligatures: no-common-ligatures}
span.s2 {font: 18.0px Menlo; font-variant-ligatures: no-common-ligatures}
通讯录(无界面)
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #c81b13}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #3c828b}
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000; min-height: 21.0px}
p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #c42275}
p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000}
p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1e9421}
p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #3e1e81}
span.s1 {font-variant-ligatures: no-common-ligatures; color: #822d0f}
span.s2 {font-variant-ligatures: no-common-ligatures}
span.s3 {font-variant-ligatures: no-common-ligatures; color: #c42275}
span.s4 {font-variant-ligatures: no-common-ligatures; color: #000000}
span.s5 {font-variant-ligatures: no-common-ligatures; color: #6122ae}
span.s6 {font-variant-ligatures: no-common-ligatures; color: #1e9421}
span.s7 {font: 18.0px 'PingFang SC'; font-variant-ligatures: no-common-ligatures}
span.s8 {font-variant-ligatures: no-common-ligatures; color: #703daa}
span.s9 {font-variant-ligatures: no-common-ligatures; color: #3e1e81}
span.s10 {font-variant-ligatures: no-common-ligatures; color: #c81b13}
span.s11 {font: 18.0px 'PingFang SC'; font-variant-ligatures: no-common-ligatures; color: #c81b13}
#import "AppDelegate.h"
#import <AddressBook/AddressBook.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
/*
kABAuthorizationStatusNotDetermined = 0, 没有决定是否授权
kABAuthorizationStatusRestricted, 受限制
kABAuthorizationStatusDenied, 拒绝
kABAuthorizationStatusAuthorized 授权
*/
//1.需要申请授权
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRef book = ABAddressBookCreateWithOptions(NULL, NULL);
ABAddressBookRequestAccessWithCompletion(book, ^(bool granted, CFErrorRef error) {
if (granted == YES) {
NSLog(@"授权成功!");
}else{
NSLog(@"授权失败");
}
});
}
return YES;
}
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #c81b13}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #3c828b}
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000; min-height: 21.0px}
p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #c42275}
p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000}
p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #3e1e81}
p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1e9421}
p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #703daa}
span.s1 {font-variant-ligatures: no-common-ligatures; color: #822d0f}
span.s2 {font-variant-ligatures: no-common-ligatures}
span.s3 {font-variant-ligatures: no-common-ligatures; color: #c42275}
span.s4 {font-variant-ligatures: no-common-ligatures; color: #000000}
span.s5 {font: 18.0px 'PingFang SC'; font-variant-ligatures: no-common-ligatures}
span.s6 {font-variant-ligatures: no-common-ligatures; color: #6122ae}
span.s7 {font-variant-ligatures: no-common-ligatures; color: #703daa}
span.s8 {font-variant-ligatures: no-common-ligatures; color: #3e1e81}
span.s9 {font-variant-ligatures: no-common-ligatures; color: #0435ff}
span.s10 {font-variant-ligatures: no-common-ligatures; color: #1e9421}
span.s11 {font: 18.0px 'PingFang SC'; font-variant-ligatures: no-common-ligatures; color: #1e9421}
span.s12 {font-variant-ligatures: no-common-ligatures; color: #c81b13}
#import "ViewController.h"
#import <AddressBook/AddressBook.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
//2.获取数据
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//1.创建一个通讯录
ABAddressBookRef book = ABAddressBookCreateWithOptions(NULL, NULL);
//获取所有联系人 其实就是记录 ABMultiValueRef record(记录)
CFArrayRef multiValue = ABAddressBookCopyArrayOfAllPeople(book);
CFIndex count = CFArrayGetCount(multiValue);
for (CFIndex i = 0; i < count ; ++i) {
ABRecordRef record = CFArrayGetValueAtIndex(multiValue, i);
//姓名
CFStringRef first = ABRecordCopyValue(record, kABPersonFirstNameProperty);
CFStringRef last = ABRecordCopyValue(record, kABPersonLastNameProperty);
NSString *firstStr = (__bridge_transfer NSString *)(first);
NSString *lastStr = (__bridge_transfer NSString *)(last);
NSLog(@"%@ %@ ",firstStr,lastStr);
//电话号码
ABMultiValueRef multiPhones = ABRecordCopyValue(record, kABPersonPhoneProperty);
CFIndex countPhone = ABMultiValueGetCount(multiPhones);
for (CFIndex j = 0; j < countPhone; ++j) {
CFStringRef phone = ABMultiValueCopyValueAtIndex(multiPhones, j);
NSString *phoneStr = (__bridge_transfer NSString *)phone;
NSLog(@"phone = %@",phoneStr);
}
CFRelease(multiPhones);
}
CFRelease(multiValue);
CFRelease(book);
}







