【发布时间】:2017-10-19 21:52:20
【问题描述】:
- (void)addContact {
// Creating new entry
ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef person = ABPersonCreate();
NSString *phone = self.data.phone;
NSString *cellphone = self.data.cellPhone;
NSString *fax = self.data.fax;
NSString *email = self.data.email;
NSString *firstName = self.data.firstName;
NSString *lastName = self.data.lastName;
ABRecordSetValue(person, kABPersonFirstNameProperty, (__bridge CFTypeRef)(firstName) , nil);
ABRecordSetValue(person, kABPersonLastNameProperty, (__bridge CFTypeRef)(lastName), nil);
ABRecordSetValue(person, kABPersonJobTitleProperty, (__bridge CFTypeRef)(title), nil);
ABRecordSetValue(person, kABPersonDepartmentProperty, (__bridge CFTypeRef)(dept), nil);
ABRecordSetValue(person, kABPersonOrganizationProperty, (__bridge CFTypeRef)(org), nil);
ABRecordSetValue(person, kABPersonNoteProperty, (__bridge CFTypeRef)(unit), nil);
// Adding phone numbers
ABMutableMultiValueRef phoneNumberMultiValue = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(phoneNumberMultiValue, (__bridge CFTypeRef)(cellphone), (CFStringRef)@"iPhone", NULL);
ABMultiValueAddValueAndLabel(phoneNumberMultiValue, (__bridge CFTypeRef)(phone), (CFStringRef)@"Work", NULL);
ABMultiValueAddValueAndLabel(phoneNumberMultiValue, (__bridge CFTypeRef)(fax), (CFStringRef)@"Fax", NULL);
ABRecordSetValue(person, kABPersonPhoneProperty, phoneNumberMultiValue, nil);
CFRelease(phoneNumberMultiValue);
// Adding emails
ABMutableMultiValueRef emailMultiValue = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(emailMultiValue, (__bridge CFTypeRef)(email), (CFStringRef)@"Work", NULL);
ABRecordSetValue(person, kABPersonEmailProperty, emailMultiValue, nil);
CFRelease(emailMultiValue);
// Adding person to the address book
ABAddressBookAddRecord(addressBook, person, nil);
CFRelease(addressBook);
ABNewPersonViewController *c = [[ABNewPersonViewController alloc] init];
[c setNewPersonViewDelegate:self];
[c setDisplayedPerson:person];
CFRelease(person);
[self.navigationController pushViewController:c animated:YES];
}
使用联系人框架的类似代码是什么?如何将人员 (ABRecordRef person = ABPersonCreate();) 的详细信息加载到 *contact (CNMutableContact *contact = [CNMutableContact new];) 中?
【问题讨论】:
标签: ios objective-c xcode9