gpt4 book ai didi

iphone - Objective C 将联系人添加到 iPhone 中的特定组

转载 作者:可可西里 更新时间:2023-11-01 05:06:52 27 4
gpt4 key购买 nike

我正在制作一个将联系人存储在地址簿中的应用程序,我正在使用 Xcode 4.2

我知道如何在地址簿中添加联系人,假设我在联系人列表中有一个名为“A”的组,我想将此联系人添加到该组中,该怎么做?

这是我使用的代码:

ABAddressBookRef *iPhoneAddressBook = ABAddressBookCreate();
ABRecordRef contact = ABPersonCreate();

//add infos
ABRecordSetValue(contact, kABPersonFirstNameProperty,(__bridge_retained CFStringRef)firstName, nil);
ABRecordSetValue(contact, kABPersonLastNameProperty,(__bridge_retained CFStringRef)lastName, nil);
ABRecordSetValue(contact, kABPersonOrganizationProperty, (__bridge_retained CFStringRef)organization, nil);
ABRecordSetValue(contact, kABPersonJobTitleProperty, (__bridge_retained CFStringRef)title, nil);


ABMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiRealPropertyType);


ABMultiValueAddValueAndLabel(multiPhone, (__bridge_retained CFStringRef)workTel, kABWorkLabel, NULL);
ABMultiValueAddValueAndLabel(multiPhone, (__bridge_retained CFStringRef)workFax, kABPersonPhoneWorkFAXLabel, NULL);

ABRecordSetValue(contact, kABPersonPhoneProperty, multiPhone, nil);
CFRelease(multiPhone);
ABAddressBookAddRecord(iPhoneAddressBook, contact, nil);

谢谢

最佳答案

首先检查组是否存在:

    -(void) CheckIfGroupExistWithName:(NSString*)groupName {


BOOL hasGroup = NO;
//checks to see if the group is created ad creats group for HiBye contacts
ABAddressBookRef addressBook = ABAddressBookCreate();
CFIndex groupCount = ABAddressBookGetGroupCount(addressBook);
CFArrayRef groupLists= ABAddressBookCopyArrayOfAllGroups(addressBook);

for (int i=0; i<groupCount; i++) {
ABRecordRef currentCheckedGroup = CFArrayGetValueAtIndex(groupLists, i);
NSString *currentGroupName = (NSString *)ABRecordCopyCompositeName(currentCheckedGroup);

if ([currentGroupName isEqualToString:groupName]){
//!!! important - save groupID for later use
self.groupId = ABRecordGetRecordID(currentCheckedGroup);
hasGroup=YES;
}
[groupName release];
}

if (hasGroup==NO){
//id the group does not exist you can create one
[self createNewGroup:groupName];
}

//CFRelease(currentCheckedGroup);
CFRelease(groupLists);
CFRelease(addressBook);

使用它来创建新组,并存储其 ID

-(void) createNewGroup:(NSString*)groupName {

ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef newGroup = ABGroupCreate();
ABRecordSetValue(HiByeGroup, kABGroupNameProperty,groupName, nil);
ABAddressBookAddRecord(addressBook, newGroup, nil);
ABAddressBookSave(addressBook, nil);
CFRelease(addressBook);

//!!! important - save groupID for later use
self.groupId = ABRecordGetRecordID(newGroup);
CFRelease(newGroup);

如何将联系人设置为群组

            //Use the Group ID you stored.
ABRecordRef HiByeGroup = ABAddressBookGetGroupWithRecordID(addressbook, self.groupId);
BOOL didAdd = ABGroupAddMember(HiByeGroup,ref,&error);

if (!didAdd) {
// Update to handle the error appropriately.
NSLog(@"Unresolved error while adding person to HiBye group %@", &error);
exit(-1); // Fail
}

BOOL didSave = ABAddressBookSave(addressbook, &error);

if (!didSave) {
// Update to handle the error appropriately.
NSLog(@"Unresolved error while saving address book%@", &error);
exit(-1); // Fail
}

祝你好运

关于iphone - Objective C 将联系人添加到 iPhone 中的特定组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8249010/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com