今天看啥
    热点:

      天发国际娱乐官网:另外,应注意查看标签明示内容,是否有模糊不清的地方,如基材采用实木框架,只提及框架材质,对于主要板件等部位未作说明。

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


      直接上代码:

      #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;

          }];

      }

      www.1click-soft.comtruehttp://www.1click-soft.com/IOSjc/1316436.htmlTechArticle获取设备通讯录信息,获取设备通讯录 直接上代码: #import "ViewController.h" #import Contacts/Contacts.h #import ContactsUI/ContactsUI.h @interface ViewControl...

      相关文章

        暂无相关文章
      相关搜索:

      帮客评论

      视觉看点
      百度 360 搜狗