2016-07-09 16 views
4

Ich verwende den folgenden Code, um auf Kontakte in meiner iOS-Anwendung zuzugreifen. Es funktioniert gut in iOS < 10, aber mit Xcode 8 und iOS 10 stürzt:ABAddressBookRequestAccessWithCompletion stürzt unter iOS 10 ab

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

I NSSetUncaughtExceptionHandler ein Verfahren zur Protokollierung des Crash-Berichts, sondern auch die Exception-Handler gesetzt habe Aufruf nicht ...

Hat jemand anderes dieses Problem auch?

+1

Husein es ist von iOS 9 veraltet. Sie können das nicht verwenden. Sie sollten Contact Framework verwenden. – user3182143

+0

Wenn Sie die Anwendung mit Kontakten Rahmen tun möchten, werde ich Ihnen helfen. Ich werde Antwort mit Kontakte Framework posten. – user3182143

Antwort

21

iOS 10:

Sie müssen die NSContactsUsageDescription in Ihrem plist setzen. Wie:

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

Siehe alle Gebrauchsbeschreibungen .

+0

Wirklich half mir .. Vielen Dank –

+0

Eine xcode Fehlermeldung, die darauf hinweist, wäre großartig gewesen. Danke, dass du das gelöst hast! – jwhat

Verwandte Themen