Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iphone中地址簿的实现_Iphone_Addressbook - Fatal编程技术网

iphone中地址簿的实现

iphone中地址簿的实现,iphone,addressbook,Iphone,Addressbook,在我的申请中,我需要创建发送群短信的联系人组。首先创建群IP,然后添加成员。问题是新添加的联系人将两次添加到所有联系人列表中,一次添加到特定的群。我只需将该联系人保存到群和所有联系人列表中一次。我的代码有什么问题?我正在使用下面的代码 - (void)newPersonViewController:(ABNewPersonViewController *)newPersonViewController didCompleteWithNewPerson:(ABRecordRef)person {}

在我的申请中,我需要创建发送群短信的联系人组。首先创建群IP,然后添加成员。问题是新添加的联系人将两次添加到所有联系人列表中,一次添加到特定的群。我只需将该联系人保存到群和所有联系人列表中一次。我的代码有什么问题?我正在使用下面的代码

- (void)newPersonViewController:(ABNewPersonViewController *)newPersonViewController didCompleteWithNewPerson:(ABRecordRef)person
{}
调用此方法时,新输入的联系人将添加到“所有联系人”列表中。 然后创建一个addressbook实例
addressbook=ABAddressBookCreate()我需要保存到组中的人是用户从界面添加的联系人。因此,该人被设置为显示的人

displayedPerson=person;
person = ABPersonCreate();
CFErrorRef error = NULL;

CFStringRef firstName, lastName; 
firstName = ABRecordCopyValue(displayedPerson, kABPersonFirstNameProperty); 
lastName  = ABRecordCopyValue(displayedPerson, kABPersonLastNameProperty);  
NSString *fname=(NSString *)firstName;
NSString *lname=(NSString *)lastName;


ABRecordSetValue(person, kABPersonFirstNameProperty,fname, &error);
ABRecordSetValue(person, kABPersonLastNameProperty,lname, &error);

ABAddressBookAddRecord(addressBook, person, &error);
ABAddressBookSave(addressBook, &error);

parentGroup = ABAddressBookGetGroupWithRecordID(addressBook,groupID);
ABAddressBookAddRecord(addressBook,  parentGroup, &error); 
ABAddressBookSave(addressBook, &error);

ABGroupAddMember(parentGroup, person, &error);
ABAddressBookSave(addressBook, nil);`
CFRelease(person);

但完成此操作后,联系人将再次添加到所有联系人列表中。有人能帮忙吗?

我希望组不是参考,所以只需提供参考无需添加personperson=ABPersonCreate()其创建新的个人设置我们我看不出这如何处理按下“取消”的情况。
  - (void)newPersonViewController:(ABNewPersonViewController *)newPersonViewController didCompleteWithNewPerson:(ABRecordRef)person
    {
        CFErrorRef error=NULL;
        ABRecordRef parentGroup = ABAddressBookGetGroupWithRecordID(newPersonViewController.addressBook,appdelegate.default_Group);//set selected group id
        ABGroupAddMember(parentGroup, person,&error);
        ABAddressBookSave(newPersonViewController.addressBook, &error);
        ABRecordID rcId = ABRecordGetRecordID(person);
         ABAddressBookSave (newPersonViewController.addressBook, &error);

        [newPersonViewController dismissModalViewControllerAnimated:YES];
    }