3

iOS 6では、このコードは常にNil2番目のコードを提供しますNSLogが、最初のコードは常に正しい複合名を提供します。したがって、私は名簿にアクセスできることを知っています。で名前を変更するaddressbookと、コードは正しい複合名をログに記録します。メールの数に関係なく、連絡先ABMultiValueGetCountは常にNilです。どうしてこれなの?

ABRecordRef person = (__bridge ABRecordRef)[addressBookArray objectAtIndex:x];

NSLog(@"%@ -", ABRecordCopyCompositeName(person));
NSLog(@"%ld -", ABMultiValueGetCount(ABRecordCopyValue(person, kABPersonEmailProperty)));
4

2 に答える 2

2

了解しました...予想していたはずのmanedObjectContext条件のように見えます...

1つのViewControllerで、これを実行しました。

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
addressBookArray = (__bridge NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
// Prsented info on the user name, but not on the Emails
CFRelease(addressBook);

2番目のViewControllerで、addressBookArrayを渡して、いくつかのサイクルで保存を試みてから、次のようにしました。

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
// Successfully accessed name properties (suspect they were chached some where ?
// Unsuccsfully accessed email properties (they have never been accessed so no chache and I get Null
CFRelease(addressBook);

修正...secondviewControllerで繰り返します:

addressBookArray = (__bridge NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);

ビンゴの問題は解決しました!!

于 2012-11-20T12:26:55.907 に答える
1

以下のリンクを確認してください。それらはあなたの問題を解決するかもしれません。iOS6では、アップルは名簿の許可を変更しました。

ユーザーが連絡先のアクセス許可を変更すると、iOS6でアプリがクラッシュしました

iOS 6アドレスブックが機能しませんか?

于 2012-11-19T12:52:16.630 に答える