2015-05-22 65 views
0

在我的應用程序中,我將圖像保存到文檔目錄。UIImage保存到內存不足的文檔目錄

我的問題是,如果當設備內存已滿,即如果我的設備是16GB,並且我的可用空間是2MB,那麼在使用WriteToFile API將圖像保存到文檔目錄時如何處理此問題。 [imageData writeToFile:captureImagename atomically:YES];

任何想法來處理這種情況 由於提前

回答

0

努力提高Lefteris'解決方案過於檢查是否有擺在首位的可用空間。

這樣,你可以詢問用戶他想做什麼「取消」或「保存(反正)」,他知道他正在一個2MB存儲器中保存一張3mb的圖片,可能會失敗。

然後,如果需要,他可以釋放空間;總是給用戶選擇&信息,他知道比你反正發生什麼。

根據這樣的回答:https://stackoverflow.com/a/8036586/3603502

你可以得到可用的磁盤空間。如有必要,請以兆字節爲單位進行翻譯,與圖片大小進行比較,如果差異小於100x,則顯示錯誤消息「您確定」。然後他可以做或不做,如果失敗,可以顯示Lefteris建議的錯誤。我會堅持他所說的,因爲他是對的:

您應該總是操作帶有錯誤語句的文件,以便在出於任何原因失敗時可以返回信息。 (並在必要時顯示給用戶)。

+0

感謝您對我的回覆 –

+0

這是否有幫助?如果確實要確保或者upvote或者標記爲將來參考的正確:) –

1

使用writeToFile:options:error:而不是writeToFile:atomically:這樣你就可以得到情況下NSError對象操作失敗。

然後你可以檢查操作返回一個錯誤

NSError *error; 
if (![plistData writeToFile:file options: NSDataWritingAtomic error:&error]) { 
    NSLog(@"Error writing file: %@", error); 
} 
+1

我試着改進你的答案,用我的,我說你不介意:p –

+0

我爲什麼要介意? :) – Lefteris

+0

你是「人」,我們在互聯網上。你現在應該黑客我的MSN帳戶,因爲我已經顯示不尊重 –