• 解决半岛问题 中美对话合作必不可少 2019-03-21
  • 阳泉计划今年在全省率先整体脱贫 2019-03-21
  • 《王者荣耀》Switch版正式公布 今年秋季推出 2019-03-16
  • 十多次告病危 2岁高危白血病男童盼来“生命火种” 2019-03-16
  • 摄艳|本网摄影师赤壁、竹林创作人像尽显侠客风 2019-03-16
  • 我在吃饭,重点在那?重点在饭,难道我只能吃饭吗?看着就想笑 2019-03-10
  • 人民日报社习近平新闻思想理论研讨会发言摘编 2019-03-10
  • 建始白云草地音乐节:醉了游人,火了产业,牵动慈善 2019-03-01
  • “直播政务述职”是与民沟通良机 2019-02-22
  • 熊猫启航计划即将启动 让世界聆听大熊猫声音 2018-12-28
  • 三星侵犯一大学专利 被判支付罚金4亿美元 2018-12-04
  • 以政府拟严打“乱拍摄”以军行为 最高10年监禁 2018-12-04
  • 今天看啥
      热点:

        新疆35选7的开奖号 www.ts3ne.com

        获取设备通讯录信息,获取设备通讯录


        直接上代码:

        #import "ViewController.h"

         

        #import <Contacts/Contacts.h>

        #import <ContactsUI/ContactsUI.h>

         

        @interface ViewController ()<CNContactPickerDelegate>

         

        @property (nonatomic, strong) UIButton *btn;

        @property (nonatomic, strong) UILabel *label;

        @property (nonatomic, strong) UILabel *labelNum;

         

        @end

         

        @implementation ViewController

         

        - (void)viewDidLoad {

            [super viewDidLoad];

         

            _btn = [UIButton buttonWithType:UIButtonTypeSystem];

            _btn.frame = CGRectMake(10, 20, 50, 30);

            [_btn setTitle:@"按钮" forState:0];

            [_btn addTarget:self action:@selector(btnAction) forControlEvents:UIControlEventTouchUpInside];

            [self.view addSubview:_btn];

            _label = [[UILabel alloc] initWithFrame:CGRectMake(10, 60, 50, 30)];

            [self.view addSubview:_label];

            _labelNum = [[UILabel alloc] initWithFrame:CGRectMake(10, 120, 50, 30)];

            [self.view addSubview:_labelNum];

        }

         

        - (void)btnAction {

            

            CNContactPickerViewController *contactPickerViewController = [[CNContactPickerViewController alloc] init];

            contactPickerViewController.delegate = self;

            

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

        }

         

        // 如果实现该方法当选中联系人时就不会再出现联系人详情界面, 如果需要看到联系人详情界面只能不实现这个方法

        - (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact {

            NSLog(@"选中某一个联系人时调用---------------------------------");

            

            [self printContactInfo:contact];

        }

         

        // 同时选中多个联系人

        - (void)contactPicker:(CNContactPickerViewController *)picker didSelectContacts:(NSArray<CNContact *> *)contacts {

            for (CNContact *contact in contacts) {

                NSLog(@"================================================");

                [self printContactInfo:contact];

            }

        }

         

        - (void)printContactInfo:(CNContact *)contact {

            

            NSString *givenName = contact.givenName;

            NSString *familyName = contact.familyName;

            NSLog(@"givenName=%@, familyName=%@", givenName, familyName);

            NSArray * phoneNumbers = contact.phoneNumbers;

            _label.text = familyName;

            

            for (CNLabeledValue<CNPhoneNumber*>*phone in phoneNumbers) {

                NSString *label = phone.label;

                CNPhoneNumber *phonNumber = (CNPhoneNumber *)phone.value;

                NSLog(@"label=%@, value=%@", label, phonNumber.stringValue);

                _labelNum.text = phonNumber.stringValue;

            }

        }

         

        // 注意:如果实现该方法,上面那个方法就不能实现了,这两个方法只能实现一个

        // - (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty {

         

        //  NSLog(@"选中某个联系人的某个属性时调用");

        // }

         

        - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {

            CNAuthorizationStatus authorizationStatus = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts];

            if (authorizationStatus == CNAuthorizationStatusAuthorized) {

                

                NSLog(@"没有授权...");

        }

            

            // 获取指定的字段,并不是要获取所有字段,需要指定具体的字段

            NSArray *keysToFetch = @[CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey];

            CNContactFetchRequest *fetchRequest = [[CNContactFetchRequest alloc] initWithKeysToFetch:keysToFetch];

            CNContactStore *contactStore = [[CNContactStore alloc] init];

            [contactStore enumerateContactsWithFetchRequest:fetchRequest error:nil usingBlock:^(CNContact * _Nonnull contact, BOOL * _Nonnull stop) {

                NSLog(@"-------------------------------------------------------");

                NSString *givenName = contact.givenName;

                NSString *familyName = contact.familyName;

                NSLog(@"givenName=%@, familyName=%@", givenName, familyName);

                

                

                NSArray *phoneNumbers = contact.phoneNumbers;

                for (CNLabeledValue *labelValue in phoneNumbers) {

                    

                    NSString *label = labelValue.label;

                    CNPhoneNumber *phoneNumber = labelValue.value;

                    

                    NSLog(@"label=%@, phone=%@", label, phoneNumber.stringValue);

                }

                

                // *stop = YES; // 停止循环,相当于break;

            }];

        }

        新疆35选7的开奖号 www.ts3ne.comtrue//www.ts3ne.com/IOSjc/1316436.htmlTechArticle获取设备通讯录信息,获取设备通讯录 直接上代码: #import "ViewController.h" #import Contacts/Contacts.h #import ContactsUI/ContactsUI.h @interface ViewControl...

        相关文章

          暂无相关文章
        相关搜索:

        帮客评论

        视觉看点
      • 解决半岛问题 中美对话合作必不可少 2019-03-21
      • 阳泉计划今年在全省率先整体脱贫 2019-03-21
      • 《王者荣耀》Switch版正式公布 今年秋季推出 2019-03-16
      • 十多次告病危 2岁高危白血病男童盼来“生命火种” 2019-03-16
      • 摄艳|本网摄影师赤壁、竹林创作人像尽显侠客风 2019-03-16
      • 我在吃饭,重点在那?重点在饭,难道我只能吃饭吗?看着就想笑 2019-03-10
      • 人民日报社习近平新闻思想理论研讨会发言摘编 2019-03-10
      • 建始白云草地音乐节:醉了游人,火了产业,牵动慈善 2019-03-01
      • “直播政务述职”是与民沟通良机 2019-02-22
      • 熊猫启航计划即将启动 让世界聆听大熊猫声音 2018-12-28
      • 三星侵犯一大学专利 被判支付罚金4亿美元 2018-12-04
      • 以政府拟严打“乱拍摄”以军行为 最高10年监禁 2018-12-04