在我的應用程序中,我將圖像保存到文檔目錄。UIImage保存到內存不足的文檔目錄
我的問題是,如果當設備內存已滿,即如果我的設備是16GB,並且我的可用空間是2MB,那麼在使用WriteToFile API將圖像保存到文檔目錄時如何處理此問題。 [imageData writeToFile:captureImagename atomically:YES];
任何想法來處理這種情況 由於提前
在我的應用程序中,我將圖像保存到文檔目錄。UIImage保存到內存不足的文檔目錄
我的問題是,如果當設備內存已滿,即如果我的設備是16GB,並且我的可用空間是2MB,那麼在使用WriteToFile API將圖像保存到文檔目錄時如何處理此問題。 [imageData writeToFile:captureImagename atomically:YES];
任何想法來處理這種情況 由於提前
努力提高Lefteris'解決方案過於檢查是否有擺在首位的可用空間。
這樣,你可以詢問用戶他想做什麼「取消」或「保存(反正)」,他知道他正在一個2MB存儲器中保存一張3mb的圖片,可能會失敗。
然後,如果需要,他可以釋放空間;總是給用戶選擇&信息,他知道比你反正發生什麼。
根據這樣的回答:https://stackoverflow.com/a/8036586/3603502
你可以得到可用的磁盤空間。如有必要,請以兆字節爲單位進行翻譯,與圖片大小進行比較,如果差異小於100x,則顯示錯誤消息「您確定」。然後他可以做或不做,如果失敗,可以顯示Lefteris建議的錯誤。我會堅持他所說的,因爲他是對的:
您應該總是操作帶有錯誤語句的文件,以便在出於任何原因失敗時可以返回信息。 (並在必要時顯示給用戶)。
使用writeToFile:options:error:
而不是writeToFile:atomically:
這樣你就可以得到情況下NSError對象操作失敗。
然後你可以檢查操作返回一個錯誤
NSError *error;
if (![plistData writeToFile:file options: NSDataWritingAtomic error:&error]) {
NSLog(@"Error writing file: %@", error);
}
感謝您對我的回覆 –
這是否有幫助?如果確實要確保或者upvote或者標記爲將來參考的正確:) –