2012-01-19 63 views
2

如何在MonoTouch中将ABPerson添加到ABGroups如何将现有联系人添加到现有组

我使用ABGroup.Add()以下异常火灾

未处理的异常信息:System.ArgumentException:cfErrorHandle不能为空。 参数名: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); 

}

公共无效AddPersontoGroup(串strGroupName,ABPerson人) { 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; 
    } 
} 

}

公共无效CreateGroup(串strGroupName) {

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

}

由于

Ramesh K

+0

我试试ABGroup.Add(ABPerson) – Ramesh

回答

1

地址簿可以是特殊的。例如。如果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(); 

,但如果你删除行添加ABPersonABAddressBook你会得到同样的错误,你已经经历。

 adBook.Add (p); 
+0

它正在工作。非常感谢@poupou – Ramesh

相关问题