2014-07-04 1 views
0

주소록 그룹 수정을위한 앱을 작성 중입니다. 책에서 모든 연락처를 삭제하고 모든 연락처를 추가하는 등 많은 변경 사항이 실행되고 있습니다. 문제는 메소드가 앱을 실행하면 UI가 정지합니다. 주 스레드에서 실행 중이기 때문에 문제가 발생한다는 것을 이해합니다. 백그라운드에서 수행하려고 할 때 그룹에 충돌이나 잘못된 변경과 같은 문제가 있습니다. 누가 그 문제를 해결하는 데 나를 도울 수 있습니까?주소 도서 프레임 워크, 저장 중 앱이 멈춤

ABAddressBookSave(_addressBookRef, &cfError); 

답변

0

최초의 솔루션 :

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 
             (unsigned long)NULL), ^(void) { 
    <Write your method here> 
}); 

두 번째 솔루션 :

- (void)syncPersonOutOfAddressBook 
{ 
    [NSThread detachNewThreadSelector:@selector(syncContactsThread) toTarget:self withObject:nil]; 
} 

-(void)syncContactsThread{ 
    if([self getAccessPermission]){ 
     ABAddressBookRef addressBook; 
     CFErrorRef error = nil; 
     addressBook = ABAddressBookCreateWithOptions(NULL,&error); 
     [self AddressBookUpdated:addressBook]; //this is method is to get address from device 
    } 

} 

나는 많은 시간 동안 그를 실행 생각하는 것은 내 UI를 차단하고 자세한 내용은 click here.