2016-09-23 21 views
2

連絡先選択ツールから連絡先を選択すると、iOS10.0でアプリがクラッシュします。 「Contact Address book crash on iOS 10 betaに説明したように、私はすでにするinfo.plistでNSContactsUsageDescriptionを追加したアドレス帳がiOS10でクラッシュする

*** Terminating app due to uncaught exception 'CNPropertyNotFetchedException', reason: 'A property was not requested when contact was fetched.' 
*** First throw call stack: 
(
    0 CoreFoundation      0x0000000105a1c34b __exceptionPreprocess + 171 
    1 libobjc.A.dylib      0x00000001052cd21e objc_exception_throw + 48 
    2 CoreFoundation      0x0000000105a85265 +[NSException raise:format:] + 197 
    3 Contacts       0x000000010dc6d96f -[CNContact sectionForSortingByFamilyName] + 160 
    4 Contacts       0x000000010dc3e18e __55-[CNContact(iOSABCompatibility) overwritePerson:error:]_block_invoke + 44 
    5 CoreFoundation      0x00000001059ad2fd __53-[__NSArrayI enumerateObjectsWithOptions:usingBlock:]_block_invoke + 77 
    6 CoreFoundation      0x00000001059ad1df -[__NSArrayI enumerateObjectsWithOptions:usingBlock:] + 207 
    7 Contacts       0x000000010dc3e0f4 -[CNContact(iOSABCompatibility) overwritePerson:error:] + 240 
    8 Contacts       0x000000010dc3dfc0 -[CNContact(iOSABCompatibility) detachedPersonWithError:] + 46 
    9 AddressBookUI      0x00000001057bdd77 -[ABPeoplePickerNavigationController contactPicker:didSelectContact:] + 145 
    10 ContactsUI       0x0000000112396eb2 -[CNContactPickerViewController pickerDidSelectContact:property:] + 306 
    11 ContactsUI       0x000000011243ee6f -[CNContactPickerHostViewController pickerDidSelectContact:property:] + 95 
    12 ContactsUI       0x000000011243f5ec __71-[CNContactPickerExtensionHostContext pickerDidSelectContact:property:]_block_invoke + 66 

それのdidn:ここ

let contactsPicker = ABPeoplePickerNavigationController() 
contactsPicker.peoplePickerDelegate = self 
self.presentViewController(contactsPicker, animated: true, completion: nil) 

がクラッシュログからのスタックトレースです:連絡先ピッカーは、このような ABPeoplePickerNavigationControllerを使用して示されていますiOS8デバイスをサポートする必要があるため、 CNContactPickerViewControllerを使用することはできません。

答えて

0

アドレス帳APIは、よりオブジェクト指向の連絡先フレームワークのために、iOS 9では廃止されました。

ABPeoplePickerViewControllerを使用する代わりに、CNContactPickerViewControllerに移動します。

1
Erdekhayserの溶液から

イムランラヒーム

Contact Address book crash on iOS 10 beta

あなたはCNContactPickerViewControllerをチェックするために、このメソッドを使用することができます提供されていますか?

if (NSClassFromString(@"CNContactPickerViewController")) { 
     // iOS 9, 10, use CNContactPickerViewController 
     CNContactPickerViewController *picker = [[CNContactPickerViewController alloc] init]; 
     picker.delegate = self; 
     picker.displayedPropertyKeys = @[CNContactPhoneNumbersKey]; 
     [pr presentViewController:picker animated:YES completion:nil]; 
    }else{ 
     // iOS 8 Below, use ABPeoplePickerNavigationController 
     ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; 
     picker.peoplePickerDelegate = self; 
     [pr presentViewController:picker animated:YES completion:nil]; 
    } 
関連する問題