【发布时间】:2012-04-15 09:01:27
【问题描述】:
我有两个 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。
有人知道为什么我无法获取联系人图片吗?
附言contactClass.manID 是 id 的类型。它有一个正确的地址,因为ABMultiValueRef multiValue = ABRecordCopyValue((__bridge ABRecordRef)contactClass.manID, kABPersonPhoneProperty); 在第二个 tableViewController 中返回正确的值
【问题讨论】:
标签: ios addressbook