将数据写入文件时(例如缩略图用于缓存,用户数据等),如何处理iDevice无法将数据写入文件的事实,因为磁盘已满?
如果磁盘空间不足,NSFileManager会抛出异常吗?
处理此问题的指定方法是什么,并通知我的用户他的数据剩余的磁盘空间非常小? (我在我的应用程序中的不同位置保存了大量不同的数据,并寻找处理它的常用方法。)
答案 0 :(得分:2)
正如您在评论中提到的那样,您要保存NSDictionary
。如果您只想知道文件是否成功保存,可以检查
writeToFile:atomically:
函数的返回值。
返回值
如果文件写成功,则为YES,否则为NO。
NSDictionary
' Storing Dictionaries Section下的更多信息。
如果您想获得有关失败的更详细错误消息(例如磁盘空间不足,文件夹不存在等),那么您可以convert the NSDictionary
to NSData
before saving it。
NSDictionary
至NSData
:
NSData *myData = [NSKeyedArchiver archivedDataWithRootObject:myDictionary];
NSData
至NSDictionary
:
NSDictionary *myDictionary = (NSDictionary*) [NSKeyedUnarchiver unarchiveObjectWithData:myData];
好处是您还可以访问此API -writeToFile:options:error:
。
如果写出数据时出错,则返回时包含一个描述问题的NSError对象。
还可以在NSData
的{{3}}下找到更多详细信息。
我认为,如果设备上的磁盘空间不足,您可以做到最好。