iOS - NSFIleManager - 如何处理低磁盘space
iOS - NSFIleManager - How to deal with low disk space
当写入数据到文件时(例如缓存缩略图,用户数据等),您如何处理由于磁盘已满而无法将数据写入文件的情况?
NSFileManager 会在磁盘不足的情况下抛出异常吗space?
处理此问题并通知我的用户磁盘空间所剩无几 space 可用于其数据的指定方法是什么? (我在我的应用程序的不同位置保存了大量不同的数据,并寻找一种通用的方法来处理它。)
正如您在评论中提到的要保存 NSDictionary
。如果只想知道文件保存成功与否,可以查看
writeToFile:atomically:
函数的return值。
Return Value
YES if the file is written successfully, otherwise NO.
NSDictionary
的 Storing Dictionaries Section 下有更多信息。
或者,
如果您想获得更详细的失败错误消息(例如磁盘不足space、文件夹不存在等),那么您可以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:
。
If there is an error writing out the data, upon return contains an NSError object that describes the problem.
也可以在 NSData
的 Storing Data Section 下找到更多详细信息。
我认为这是您在设备上出现磁盘不足 space 问题时所能做的最好的事情。
当写入数据到文件时(例如缓存缩略图,用户数据等),您如何处理由于磁盘已满而无法将数据写入文件的情况?
NSFileManager 会在磁盘不足的情况下抛出异常吗space?
处理此问题并通知我的用户磁盘空间所剩无几 space 可用于其数据的指定方法是什么? (我在我的应用程序的不同位置保存了大量不同的数据,并寻找一种通用的方法来处理它。)
正如您在评论中提到的要保存 NSDictionary
。如果只想知道文件保存成功与否,可以查看
writeToFile:atomically:
函数的return值。
Return Value
YES if the file is written successfully, otherwise NO.
NSDictionary
的 Storing Dictionaries Section 下有更多信息。
或者,
如果您想获得更详细的失败错误消息(例如磁盘不足space、文件夹不存在等),那么您可以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:
。
If there is an error writing out the data, upon return contains an NSError object that describes the problem.
也可以在 NSData
的 Storing Data Section 下找到更多详细信息。
我认为这是您在设备上出现磁盘不足 space 问题时所能做的最好的事情。