2012-01-19 16 views
2

MonoTouchでABPersonABGroupsを追加するにはどうすればよいですか? System.ArgumentExceptionの:cfErrorHandleがnullであってはならない既存の連絡先を既存のグループに追加する方法

iはABGroup.Add()次の例外火災

未処理の例外を使用します。 パラメータ名:cfErrorHandle私はABPersonがABPeoplePickerNavigationControllerを使用して存在し、既に選択


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

アドレス帳は固有です。例えば。 ABPersonABGroupに追加することは、ABPersonABAddressBookの一部である場合(つまり、グループに追加すると自動的に行われない場合)に有効です。

このコードは、基本的にと1行の余分な行で処理しています。

 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(); 

しかし、あなたは、あなたがすでに経験と同じエラーが発生しますABAddressBookABPersonを追加する行を削除した場合。

 adBook.Add (p); 
+0

これは働いています。大変ありがとう@poupou – Ramesh

関連する問題