获取联系人图片ios

时间:2013-01-10 13:43:39

标签: iphone ios ios5 ios6

我正在尝试弄清楚如何在此代码中添加姓氏名字,以便从我的手机中获取他们的联系人图片:

if(ABPersonHasImageData(aABRecordRef))
{
   UIImage *image = [UIImage imageWithData:(NSData *)ABPersonCopyImageData(aABRecordRef)];
   cell.imageView.image = image;
} else {
   UIImage *image1=[UIImage imageNamed:@"User.jpg"];
   cell.imageView.image=image1;
}

我也可能在这里缺少代码,所以请填写需要它的区域。我只是想弄清楚如何将第一个,最后一个名称添加到上面的代码中,所以我知道当我到达该联系人时为其提取图像。

任何帮助都会很棒!谢谢!

2 个答案:

答案 0 :(得分:4)

要获取FirstName和LastName,您可以使用:

NSString *firstName = (NSString *)ABRecordCopyValue(aABRecordRef, kABPersonFirstNameProperty);
NSString *lastName = (NSString *)ABRecordCopyValue(aABRecordRef, kABPersonLastNameProperty);

此处显示如何Search By Number and Get the image using ABAddressBook

但是你想搜索By FirstName和LastName。因此,根据Documentation,您应该对多个参数使用-recordsMatchingSearchElement:方法。

获得匹配的数据后,您可以使用以下代码提取图像:

CFDataRef imageData = ABPersonCopyImageData(aABRecordRef);
UIImage *image = [UIImage imageWithData:(NSData *)imageData];
CFRelease(imageData);

希望你从中获得有用的东西。

答案 1 :(得分:0)

尝试:

CFStringRef firstName, lastName; // can cast this to NSString *

firstName = ABRecordCopyValue(aABRecordRef, kABPersonFirstNameProperty);
lastName = ABRecordCopyValue(aABRecordRef, kABPersonLastNameProperty);