-(void)touchSaveLocal { //ABAddressBookRef addressBook = ABAddressBookCreate(); //初始化一个record ABRecordRef person = ABPersonCreate(); ABAddressBookRef addressBook = nil; if ([[UIDevice currentDevice].systemVersion floatValue] >= 6.0) { addressBook = ABAddressBookCreateWithOptions(NULL, NULL); //等待同意后向下执行 dispatch_semaphore_t sema = dispatch_semaphore_create(0); ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) { dispatch_semaphore_signal(sema); }); dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER); } else { addressBook = ABAddressBookCreate(); } //这是一个空的记录,或者说是没有任何信息的联系人 //下面给这个人 添加一个名字 NSString *firstName = self.detailNode.userName; ABRecordSetValue(person, kABPersonFirstNameProperty, (CFStringRef)CFBridgingRetain(firstName), NULL); //phone ABMultiValueRef phone = ABMultiValueCreateMutable(kABMultiStringPropertyType); ABMultiValueAddValueAndLabel(phone, CFBridgingRetain(self.detailNode.phone), kABPersonPhoneMainLabel, NULL);//添加移动号码0 ABRecordSetValue(person, kABPersonPhoneProperty, phone, NULL); //compay NSString *gongsi = self.detailNode.company; ABRecordSetValue(person, kABPersonOrganizationProperty, (CFStringRef)CFBridgingRetain(gongsi), NULL); //将新的记录,添加到通讯录中 ABAddressBookAddRecord(addressBook, person, NULL); //通讯录执行保存 ABAddressBookSave(addressBook, NULL); //不说了,你懂的~ if(addressBook) CFRelease(addressBook); UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil message:@"添加成功" delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil]; [alert show];}