2012-01-19 5 views
2

MonoTouch에 ABPersonABGroups을 추가하려면 어떻게해야합니까? System.ArgumentException : cfErrorHandle가 null이 아니어야합니다기존 그룹에 기존 연락처를 추가하는 방법

은 내가 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의 일부인 경우 (예 : 그룹에 추가하면 자동으로 수행하지는 않습니다.) 유효합니다.

이 코드는 기본적으로 하나의 추가 라인으로 작업하고 있습니다.

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

하지만 당신은 ABAddressBook 같은 오류가 발생합니다 당신이 이미 경험에 ABPerson를 추가하는 행을 제거합니다.

 adBook.Add (p); 
+0

작동 중입니다. 대단히 감사합니다. – Ramesh

관련 문제