Commonlife's Blog

My daily life

Posts Tagged ‘보안정책

iOS : iOS6 연락처에서 정보 가져오기

leave a comment »

기존의 앱을 유지 보수 하던 도중 연락처에서 전화번호를 못가져오는 사태가 발생되고 있었다.

찾아보니 문제는 iOS6의 개인 보안 정책 때문이었다.

ABAddressBookRef addressBook;
float thisVersion = [[[UIDevicecurrentDevice] systemVersion] floatValue];

if(thisVersion >= 6.0){
    addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
    __block BOOL accessGranted = NO;
    dispatch_semaphore_t sema = dispatch_semaphore_create(0);
    ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error){
        accessGranted = granted;
        dispatch_semaphore_signal(sema);
    });
    dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
    dispatch_release(seam);
} else {
    addressBook = ABAddressBookCreate();
}
  •  __block은 메모리 할당을 stack이 아닌 heap에서 한다.

Written by tocommonlife

2012/10/09 at 01:19

iOS에 게시됨

Tagged with , ,