我正在尝试显示 iPhone 通讯录中的联系人。我获取联系人的姓名和图像。然后我将这些详细信息传递给详细信息视图。
现在的问题是当我推送详细视图时,动画非常缓慢且不稳定。仅当我获取具有图像的联系人详细信息时才会发生这种情况。当联系人详细信息不包含图像时,pushviewcontroller 动画效果非常好。
我还注意到这个问题只发生在 iPhone 4.0 中。当我在 iPhone 3gs 上测试时,它运行良好。所以我认为这可能是设备特定的问题。
我通过以下方式获取联系人姓名:
ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef record=ABCFindPersonMatchingPhoneNumber(addressBook,
number, 0, 0);
if(record)
{
NSString *name=(NSString *)ABRecordCopyCompositeName(record);
NSLog(@"Contact Name %@",name);
}
我通过以下方式获取联系人图像:
if (record && ABPersonHasImageData(record))
{
CFDataRef data;
data = ABPersonCopyImageData(record);
if (data)
{
NSLog(@"ImageFound");
imageData=[[NSData alloc] initWithData:(NSData *)data];
}
}
然后我将 imageData 传递给详细信息视图
DetailView *detail=[[DetailView alloc] initWithNibName:@"DetailView" bundle:nil];
detail.imageData=imageData
[self.navigationController pushViewController:detail animated:YES];
我该如何改进呢?