zoukankan      html  css  js  c++  java
  • IOS 获取系统通讯录中的联系人信息

    - (IBAction)getAllContactFromSystem {
    ABAddressBookRef ab = ABAddressBookCreateWithOptions(NULL, NULL);
    ABAddressBookRequestAccessWithCompletion(ab, ^(bool granted, CFErrorRef error) {

    //取得通讯录访问授权
    ABAuthorizationStatus authorization= ABAddressBookGetAuthorizationStatus();
    if (authorization!=kABAuthorizationStatusAuthorized) {
    NSLog(@"尚未获得通讯录访问授权!");
    return ;
    }

    //取得通讯录中所有人员记录
    CFArrayRef allPeople= ABAddressBookCopyArrayOfAllPeople(ab);
    for (int i=0; i<CFArrayGetCount(allPeople); ++i) {
    ABRecordRef recordRef = CFArrayGetValueAtIndex(allPeople, i);
    //获取用户名
    NSString *firstName = (__bridge NSString *) ABRecordCopyValue(recordRef, kABPersonFirstNameProperty);
    NSString *lastName = (__bridge NSString *)ABRecordCopyValue(recordRef, kABPersonLastNameProperty);
    NSString *personName = [NSString stringWithFormat:@"%@%@",lastName,firstName];
    //获取手机号
    NSMutableArray *phoneNumbers = [NSMutableArray new];
    ABMultiValueRef phoneNumbersRef = ABRecordCopyValue(recordRef, kABPersonPhoneProperty);
    for(int j=0; j<ABMultiValueGetCount(phoneNumbersRef); ++j){
    NSString* phoneNumber = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(phoneNumbersRef, j));
    phoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@"-" withString:@""];
    if (phoneNumber.length > 0) {
    [phoneNumbers addObject:phoneNumber];
    }
    }
    }

    //释放资源
    CFRelease(allPeople);
    });
    }

  • 相关阅读:
    MySQL IO线程及相关参数调优
    mysql InnoDB index 主键采用聚簇索引,二级索引不采用聚簇索引
    Mysql怎么判断繁忙 checkpoint机制 innodb的主要参数
    遇见 TiDB
    TiDB 深度实践之旅--真实“踩坑”经历
    tidb使用坑记录
    MySQL mysql server与存储引擎
    DBProxy 读写分离使用说明
    DBProxy 项目全解
    Mysql 数据库意向锁意义
  • 原文地址:https://www.cnblogs.com/guoxiaoqian/p/5314734.html
Copyright © 2011-2022 走看看