我正在编写一个与iPhone地址簿接口的应用程序。
以下是我的代码的相关部分(来自UIImagePickerControllerDelegate
)
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingImage:(UIImage *)image
editingInfo:(NSDictionary *)editingInfo
{
ABPersonSetImageData(record, (__bridge CFDataRef)UIImagePNGRepresentation(image), &error);
}
我的应用可让您使用相机拍摄照片(使用UIImagePictureController
),然后将其存储为地址簿中某人的联系人。
我发现上面的操作挂起了5-10秒。 1)有更好的方法吗? 2)为什么这么慢?
答案 0 :(得分:1)
UIImageJPEGRepresentation (UIImage *image, CGFloat compressionQuality);
将比UIImagePNGRepresentation
快,特别是如果compressionQuality
设置为较低值。但是,这仍然是一个CPU密集型进程,因此无法避免等待。
您可以做的最好的事情是显示正在完成工作的消息,因此界面不会感觉无响应。使用SVProgressHUD
之类的东西来做到这一点。