2016-07-09 7 views
4

以下のコードを使用して、自分のiOSアプリケーションの連絡先にアクセスします。 ...iOS 10でABAddressBookRequestAccessWithCompletionがクラッシュする

私はクラッシュレポートを記録するための方法に NSSetUncaughtExceptionHandlerを設定しましたが、でも、例外ハンドラを呼び出すされていない

- (void)btcContacts_tap { 
    ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL); 
    ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) { 
     if (granted) { 
      _addressBookController = [[ABPeoplePickerNavigationController alloc] init]; 

      [[_addressBookController navigationBar] setBarStyle:UIBarStyleBlack]; 

      _addressBookController.delegate = self; 
      [_addressBookController setPredicateForEnablingPerson:[NSPredicate predicateWithFormat:@"%[email protected] > 0", ABPersonPhoneNumbersProperty]]; 
      [_addressBookController setPeoplePickerDelegate:self]; 
      [self presentViewController:_addressBookController animated:YES completion:nil]; 
     } 
     else { 
      dispatch_async(dispatch_get_main_queue(), ^{ 
       [self showMessage:NSLocalizedStringFromTable(@"PLEASE_GRANT_CONTACTS", LIApplicationLanguage(), nil) andAdvertise:@"" andService:nil andTransactionState:kTTTransactionStateInfo]; 
      }); 
     } 
    }); 
} 

:それは、iOS < 10に罰金を働いていたが、Xcodeの8とiOS 10でそれがクラッシュ

誰かがこの問題にも直面していますか?

+1

ヒューズはiOS 9から廃止されました。あなたは使用できません。連絡先フレームワークを使用する必要があります。 – user3182143

+0

連絡先フレームワークを使用してアプリケーションを実行する場合は、私はあなたにお手伝いします。私は連絡先フレームワークを使用して回答を投稿します。 – user3182143

答えて

21

iOSの10:

あなたのPLISTにNSContactsUsageDescriptionを配置する必要があります。 Like:

<key>NSContactsUsageDescription</key> 
<string>$(PRODUCT_NAME) uses photos</string> 

すべての使用方法の説明を参照してくださいhere

+0

本当に助けてくれました..ありがとうございました –

+0

これは素晴らしいことを示すxcodeのエラーメッセージです。これを解決していただきありがとうございます! – jwhat

関連する問題