2 つの tableViewController があります。最初のものには連絡先のリストがあります。もう1つは、詳細な個人情報を示しています。
最初の tableViewController のコードのチャンク
ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef source = ABAddressBookCopyDefaultSource(addressBook);
NSArray *allPeople = (__bridge_transfer NSArray*)ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(addressBook, source,kABPersonSortByFirstName);
for ( int i = 0; i < [allPeople count]; i++ )
{
...
contactClass = [[ContactClass alloc] initWithName:name surName:surName manID:[allPeople objectAtIndex:i]];
...
}
2 番目の tableViewController のコードのチャンク
ABRecordRef person = (__bridge ABRecordRef)contactClass.manID;
BOOL isHasImage = ABPersonHasImageData(person);
連絡先にアバターがある場合でも、変数 isHasImage は常に false です。最初の tableViewController でこれをチェックしたところ、人がアバターを持っている場合は true と image が返されます。
連絡先の画像を取得できない理由を知っている人はいますか?
pscontactClass.manID
は の型ですid
。ABMultiValueRef multiValue = ABRecordCopyValue((__bridge ABRecordRef)contactClass.manID, kABPersonPhoneProperty);
2番目のtableViewControllerで正しい値を返すため、正しいアドレスがあります