• 十九大代表卢丽安利用周末与在沪台胞分享她参会心得  2019-05-19
  • (两会受权发布)最高人民法院院长简历 2019-05-14
  • 巫山县大峡村:深度贫困村的脱贫之变 2019-05-12
  • “关注泌尿健康”三金片媒体沙龙北京站 2019-05-09
  • 人民网评:教师欠薪为何又成新闻了? 2019-05-07
  • 涪陵:全国人大代表刘家奇院坝讲“两会” 乡亲点赞“六子致富经” 2019-05-07
  • 海南将与香港携手开拓国际客源市场--旅游频道 2019-05-01
  • 赵孟頫:书法大师是怎么炼成的? 2019-04-28
  • 只看到“贫穷”而看不到“富裕”,只看到贫富差别而看不到其根源是社会财富被个人占为私有的私有制,都是片面错误的。 2019-04-25
  • 紫光阁中共中央国家机关工作委员会 2019-04-25
  • 大众因“排放门”被罚10亿欧元 外媒:处罚还没完 2019-04-11
  • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-04-09
  • 西安启动唐长安城明德门遗址保护工程 2019-04-07
  • 2019款沃尔沃S60高性能版官图发布 本月20号正式亮相 2019-04-07
  • 银保监会新规剑指大企业多头融资和过度融资 2019-04-03
  • 今天看啥
      热点:

        新疆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-05-19
      • (两会受权发布)最高人民法院院长简历 2019-05-14
      • 巫山县大峡村:深度贫困村的脱贫之变 2019-05-12
      • “关注泌尿健康”三金片媒体沙龙北京站 2019-05-09
      • 人民网评:教师欠薪为何又成新闻了? 2019-05-07
      • 涪陵:全国人大代表刘家奇院坝讲“两会” 乡亲点赞“六子致富经” 2019-05-07
      • 海南将与香港携手开拓国际客源市场--旅游频道 2019-05-01
      • 赵孟頫:书法大师是怎么炼成的? 2019-04-28
      • 只看到“贫穷”而看不到“富裕”,只看到贫富差别而看不到其根源是社会财富被个人占为私有的私有制,都是片面错误的。 2019-04-25
      • 紫光阁中共中央国家机关工作委员会 2019-04-25
      • 大众因“排放门”被罚10亿欧元 外媒:处罚还没完 2019-04-11
      • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-04-09
      • 西安启动唐长安城明德门遗址保护工程 2019-04-07
      • 2019款沃尔沃S60高性能版官图发布 本月20号正式亮相 2019-04-07
      • 银保监会新规剑指大企业多头融资和过度融资 2019-04-03