2012-01-19 107 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

相關問題