在我的应用程序中,我将图像保存到文档目录。
我的问题是,如果设备内存已满,例如我的设备是16GB而我的可用空间是2mb,那么如何使用WriteToFile API将图像保存到文档目录时处理这个问题。
[imageData writeToFile:captureImagename atomically:YES];
处理这种情况的任何想法 在此先感谢
答案 0 :(得分:1)
使用writeToFile:options:error:
代替writeToFile:atomically:
,以便在操作失败时获取NSError对象。
然后您可以检查操作是否返回错误
NSError *error;
if (![plistData writeToFile:file options: NSDataWritingAtomic error:&error]) {
NSLog(@"Error writing file: %@", error);
}
答案 1 :(得分:0)
尝试改进 Lefteris' 解决方案时,请先检查一下是否有可用空间。
这样,您可以询问用户他想做什么"取消"或者"保存(无论如何)",并且他知道他在2mb存储器中保存了3mb的照片,它可能会失败。
然后他可以在必要时释放空间;总是给用户选择&信息,他比你知道的更好。
根据这个答案:https://stackoverflow.com/a/8036586/3603502
您可以获得可用的磁盘空间。如果需要,将其翻译为兆字节,与图片大小进行比较,如果差异小于100x,则显示错误消息,说明"您确定"。然后他可以做或不做,如果失败你可以显示像Lefteris建议的错误。而且我会坚持他所说的,因为他是对的:
您应始终使用错误语句操作文件,以便在出于任何原因失败时可以返回信息。 (如有必要,显示给用户)。