2012-06-20 97 views
0

我正在拍攝一張照片並將其保存到設備上的應用程序。當點擊「保存」似乎太長了,它拋出在日誌中這樣的信息:wait_fences:未能收到回覆:10004003拍照時

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時,我是否應該稍微延遲一點?

謝謝!

回答

2

問題是,據推測,你在主線程上運行這種方法。 wait_fences函數是其中一個iOS圖形庫的內部函數,它與動畫相關 - 當您保存圖像時,在將大量數據寫入文件的同時阻止主線程和用戶界面。將保存功能移到另一個線程(考慮使用NSThread),並且您的用戶界面應該再次進行響應。

+0

好吧,這是總的意義。非常感謝! – TheTC

相關問題