wait_fences:拍照时未能收到回复:10004003

时间:2012-06-20 03:09:16

标签: ios uiimage

我正在开发一款可拍照并将其保存到设备的应用。单击“保存”时似乎需要太长时间,它会在日志中抛出此消息:

wait_fences: failed to receive reply: 10004003

以下是保存拍摄照片时调用的方法:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    [picker dismissModalViewControllerAnimated:YES];

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

    int img_count = [[appDelegate retrieveFromUserDefaults:@"image_saved"] intValue];
    img_count = img_count + 1;

    NSString *imageName = [[NSString alloc] initWithFormat:@"dmg_image_%@_%d", [appDelegate retrieveFromUserDefaults:@"current_job_id"], img_count];

    [appDelegate saveImage:image withName:imageName];
    [appDelegate saveToUserDefaults:imageName key:@"inspection_image"];

    [damageImage setImage:image];
    [damageDesc becomeFirstResponder];
}

我确信我错过了一些简单的东西,而且我认为抛出这条信息的原因是它运行得有点慢。

我已经阅读过其他有这个问题的人了,但他们正在使用提醒电话,而不是拍照留言。在调用didFinishPicking时我应该稍微延迟吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

问题是,大概是你在主线程上运行这个方法。 wait_fences函数是其中一个iOS图形库的内部函数,它与动画有关 - 当你保存图像时,你会在写入大量的图像时阻塞主线程和UI。数据到文件。将保存功能移到另一个线程(考虑使用NSThread),您的用户界面应该再次响应。