标签:token inter end res share value ids shared idc
ContactsService.h代码
#import <Foundation/Foundation.h> #import <UIKit/UIKit.h> //block返回选中的通讯里名字和电话 typedef void(^ChoseContacts)(NSString *name,NSString *phone); @interface ContactsService : NSObject @property(nonatomic,copy)ChoseContacts contacts; /* 单例 */ +(ContactsService *)sharedContactsService; /** 打开系统通讯录 */ -(void)showContactsServiceWithVC:(UIViewController *)nav; @end
ContactsService.m代码
#import "ContactsService.h" #import <ContactsUI/ContactsUI.h> @interface ContactsService ()<CNContactPickerDelegate> { CNContactPickerViewController *_contactPickerViewController; } @end @implementation ContactsService static ContactsService *contacts; +(ContactsService *)sharedContactsService{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ contacts = [ContactsService new]; }); return contacts; } -(void)showContactsServiceWithVC:(UIViewController *)nav{ _contactPickerViewController = [[CNContactPickerViewController alloc] init]; _contactPickerViewController.delegate = self; [nav presentViewController:_contactPickerViewController animated:YES completion:nil]; } // 如果实现该方法当选中联系人时就不会再出现联系人详情界面, 如果需要看到联系人详情界面只能不实现这个方法, #pragma mark CNContactPickerDelegate - (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact { [self printContactInfo:contact]; [_contactPickerViewController dismissViewControllerAnimated:YES completion:nil]; } - (void)contactPickerDidCancel:(CNContactPickerViewController *)picker{ [_contactPickerViewController dismissViewControllerAnimated:YES completion:nil]; } - (void)printContactInfo:(CNContact *)contact { NSString *givenName = contact.givenName; NSString *familyName = contact.familyName; //NSLog(@"givenName=%@, familyName=%@", givenName, familyName); NSArray * phoneNumbers = contact.phoneNumbers; for (CNLabeledValue<CNPhoneNumber*>*phone in phoneNumbers) { // NSString *label = phone.label; CNPhoneNumber *phonNumber = (CNPhoneNumber *)phone.value; // NSLog(@"label=%@, value=%@", label, phonNumber.stringValue); if(self.contacts){ self.contacts([NSString stringWithFormat:@"%@%@",familyName,givenName], phonNumber.stringValue); } break; } } @end
使用:
ContactsService *contacts = [ContactsService sharedContactsService]; contacts.contacts = ^(NSString *name, NSString *phone) { NSString *str = [NSString stringWithFormat:@"选中的名字:%@ 电话:%@",name,phone]; UIAlertView *aler = [[UIAlertView alloc]initWithTitle:@"通讯里" message:str delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [aler show]; }; [contacts showContactsServiceWithVC:self];
标签:token inter end res share value ids shared idc
原文地址:https://www.cnblogs.com/hualuoshuijia/p/9987371.html