如何将现有联系人添加到现有组中

本文关键字:添加 联系人 | 更新日期: 2023-09-27 18:20:41

如何在MonoTouch中将ABPerson添加到ABGroups

我在异常触发后使用ABGroup.Add()

未处理的异常:System.ArgumentException:cfErrorHandle不能为null。参数名称:cfErrorHandle

我使用ABPeoplePickerNavigationController选择了已存在的ABPerson。


ABAddressBook adBook = new ABAddressBook();

//ABPeoplePickerNavigationController SelectPerson event void HandleAbPeoplePickerSelectPerson (object sender, ABPeoplePickerSelectPersonEventArgs e) {

if(_isNew )
{
    CreateGroup (txtNewGroup .Text);
    AddPersontoGroup(txtNewGroup .Text, e.Person);

}
if(!e.Continue )
    this.NavigationController .DismissModalViewControllerAnimated (true);

}

public void AddPersontoGroup(字符串strGroupName,ABPerson person){ABGroup[]allGroups=adBook.GetGroups();

for (int rowIndex=0; rowIndex<allGroups.Length ;rowIndex++)
{
    ABGroup abGroup=allGroups [rowIndex];
    if(abGroup.Name ==strGroupName)
    {
        abGroup.Add(person);
        adBook.Save ();
        break;
    }
}

}

public void CreateGroup(字符串strGroupName){

ABGroup grp = new ABGroup (); grp.Name = strGroupName; adBook.Add(grp); adBook.Save ();

}

感谢

Ramesh K

如何将现有联系人添加到现有组中

地址簿可能是特殊的。例如,仅当ABPersonABAddressBook的一部分时,将ABPerson添加到ABGroup才有效(即,将其添加到组不会自动做到这一点)。

这段代码,基本上就是您用多写一行所做的,将起作用。

        ABAddressBook adBook = new ABAddressBook ();
        ABGroup grp = new ABGroup ();
        grp.Name = "Test";
        adBook.Add (grp);
        adBook.Save (); 
        ABPerson p = new ABPerson ();
        adBook.Add (p);
        grp.Add (p);
        adBook.Save (); 

但是,如果删除将ABPerson添加到ABAddressBook的行,则会出现与您已经经历的错误相同的错误。

        adBook.Add (p);