为现有联系人添加电话号码
我正在尝试使用AddressBook框架向现有联系人添加电话号码,在选择具有选择器的人员后调用此方法:
- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person { if(_phoneNumber != nil) { ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutableCopy (ABRecordCopyValue(person, kABPersonPhoneProperty)); ABMultiValueAddValueAndLabel(multiPhone, (__bridge CFTypeRef)_phoneNumber, kABPersonPhoneOtherFAXLabel, NULL); ABRecordSetValue(person, kABPersonPhoneProperty, multiPhone,nil); CFRelease(multiPhone); } return FALSE; }
但在此之后,该号码不会添加到此人的记录中。 我究竟做错了什么?
您需要将此记录保存到通讯簿中。
使用ABPeoplePickerNavigationController
的addressBook
属性获取地址簿,然后调用ABAddressBookSave
。
这给你一些像:
- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person { if(_phoneNumber != nil) { ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutableCopy (ABRecordCopyValue(person, kABPersonPhoneProperty)); ABMultiValueAddValueAndLabel(multiPhone, (__bridge CFTypeRef)_phoneNumber, kABPersonPhoneOtherFAXLabel, NULL); ABRecordSetValue(person, kABPersonPhoneProperty, multiPhone,nil); ABAddressBookRef ab = peoplePicker.addressBook; CFErrorRef* error = NULL; ABAddressBookSave(ab, error); CFRelease(multiPhone); } return FALSE; }
您可以测试ABAddressBookSave
返回值的成功/失败,并获取error
变量中的其他信息。
- IOS上的WaveForm
- 需要有关RestKit数据同步scheme的帮助
- reloadData调用numberOfSections,numberOfRows,而不是cellForRowAtIndexPath
- 椭圆曲线encryption在iOS中
- 我如何通过NSURLConnection sendAsynchronousRequest取消asynchronous调用?
- 在使用故事板的同时划分UIWindow
- UIButton标记没有被分配6个单元格后的indexPath.row
- 试图填充NSMutableArray,但隐式转换的int为id是不允许与弧
- 为什么UITextField在resignFirstResponder上animation?