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 に答える