我有两个 tableViewControllers。第一个有一个联系人列表。另一个显示详细的人员信息。
第一个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]];
...
}
第二个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);
在第二个 tableViewController 中返回正确的值