2

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

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;
}

我也可能在这里缺少代码,所以请填写需要的区域。我只是不知道如何在上面的代码中添加名字姓氏,所以我知道什么时候我已经联系到那个联系人来提取它的图像。

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

4

2 回答 2

4

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

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

这里它展示了如何使用 ABAddressBook 按数字搜索和获取图像

但是您想按名字和姓氏搜索。因此,根据文档,您应该对多个参数使用-recordsMatchingSearchElement:方法。

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

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

希望你能从中得到一些有用的东西。

于 2013-01-10T14:36:31.953 回答
0

尝试:

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

firstName = ABRecordCopyValue(aABRecordRef, kABPersonFirstNameProperty);
lastName = ABRecordCopyValue(aABRecordRef, kABPersonLastNameProperty);  
于 2013-01-10T13:50:03.680 回答