如何将现有联系人添加到现有组中
本文关键字:添加 联系人 | 更新日期: 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
地址簿可能是特殊的。例如,仅当ABPerson
是ABAddressBook
的一部分时,将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);