• 通讯录(ios自带无界面)


    1,添加框架AddressBook.framework

    2,请求权限认证,在Appdelegate.m文件中

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

            /*

             kABAuthorizationStatusNotDetermined = 0, 没有决定是否授权

             kABAuthorizationStatusRestricted,  受限制

             kABAuthorizationStatusDenied,  拒绝

             kABAuthorizationStatusAuthorized  授权

             */

            //请求用户授权

            if(ABAddressBookGetAuthorizationStatus()==kABAuthorizationStatusNotDetermined)

            {

                ABAddressBookRef book=ABAddressBookCreateWithOptions(NULL, NULL);

                ABAddressBookRequestAccessWithCompletion(book, ^(bool granted, CFErrorRef error) {

                    if (granted) {

                        NSLog(@"授权成功");

                    }

                    else

                    {

                        NSLog(@"授权失败,%@",error);

                    }

                });

                

            }

     

           return YES;

    }

     

    3,控制器中实现

     

    #import "ViewController.h"

    #import <AddressBook/AddressBook.h>

     

    @interface ViewController ()

     

    @end

     

    @implementation ViewController

     

    - (void)viewDidLoad {

        [super viewDidLoad];

    //    /*

    //     kABAuthorizationStatusNotDetermined = 0, 没有决定是否授权

    //     kABAuthorizationStatusRestricted,  受限制

    //     kABAuthorizationStatusDenied,  拒绝

    //     kABAuthorizationStatusAuthorized  授权

    //     */

    //    //请求用户授权

    //    if(ABAddressBookGetAuthorizationStatus()==kABAuthorizationStatusNotDetermined)

    //    {

    //        ABAddressBookRef book=ABAddressBookCreateWithOptions(NULL, NULL);

    //        ABAddressBookRequestAccessWithCompletion(book, ^(bool granted, CFErrorRef error) {

    //            if (granted) {

    //                NSLog(@"授权成功");

    //            }

    //            else

    //            {

    //                NSLog(@"授权失败,%@",error);

    //            }

    //        });

    //        

    //    }

     

    }

    //获取数据

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

    {

        //1.创建通讯录

        ABAddressBookRef book=ABAddressBookCreateWithOptions(NULL, NULL);

        //获取所有联系人记录

        CFArrayRef multivalues=ABAddressBookCopyArrayOfAllPeople(book);

        CFIndex count=CFArrayGetCount(multivalues);

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

            ABRecordRef record=CFArrayGetValueAtIndex(multivalues, i);

            CFStringRef first=ABRecordCopyValue(record, kABPersonFirstNameProperty);

            CFStringRef last=ABRecordCopyValue(record, kABPersonLastNameProperty);

            NSLog(@"%@,%@",(__bridge_transfer NSString*)first,(__bridge_transfer NSString*)last);

            ABMultiValueRef multiPhones=ABRecordCopyValue(record, kABPersonPhoneProperty);

            

            CFIndex countPhone=ABMultiValueGetCount(multiPhones);

            for (int j=0; j<countPhone; j++) {

                CFStringRef phone=ABMultiValueCopyValueAtIndex(multiPhones, j);

                NSLog(@"phone=%@",(__bridge_transfer NSString*)phone);

            }

            CFRelease(multiPhones);

        }

        CFRelease(multivalues);

        CFRelease(book);

        

    }

     

     

     

     

    - (void)didReceiveMemoryWarning {

        [super didReceiveMemoryWarning];

        // Dispose of any resources that can be recreated.

    }

     

    @end

  • 相关阅读:
    一、分组查询
    续、传参
    页面加载时loading效果
    2019-6 21
    一、Nuget管理
    三、项目分析
    七、OIDC
    【2019-10-19】习惯的力量
    【2019-10-18】好好珍惜自己的好奇心
    【2019-10-17】女人有钱,体面又可爱
  • 原文地址:https://www.cnblogs.com/tangranyang/p/4656144.html
Copyright © 2020-2023  润新知