1

我正在编写一个与 iPhone 通讯录接口的应用程序。

这是我的代码的相关部分(来自UIImagePickerControllerDelegate

-(void)imagePickerController:(UIImagePickerController *)picker 
       didFinishPickingImage:(UIImage *)image 
                 editingInfo:(NSDictionary *)editingInfo
{
    ABPersonSetImageData(record, (__bridge CFDataRef)UIImagePNGRepresentation(image), &error);
}

我的应用程序允许您使用相机拍照(使用UIImagePictureController),然后将其作为联系人存储在您的通讯录中。

我发现上面的操作会挂起 5-10 秒。1)有更好的方法吗?2)为什么这么慢?

4

1 回答 1

1

另存为 JPEG

UIImageJPEGRepresentation (UIImage *image, CGFloat compressionQuality);

将比 快UIImagePNGRepresentation,尤其是如果compressionQuality设置为低值。但是,这仍然是一个 CPU 密集型过程,因此无法避免等待。

您能做的最好的事情就是显示工作正在完成的消息,这样界面就不会感觉没有响应。使用类似的东西SVProgressHUD来做到这一点。

于 2012-06-24T08:15:07.507 回答