ios html读取nsdata,ios – 读取本地文件时应该使用哪些NSDataReadingOptions?

使用NSData(contentsOfURL:options :)读取本地文件时,哪一个是合适的读取选项?

还有一个没有NSDataReadingOptions的NSData(contentsOfURL :).默认使用哪种阅读选项?

供Apple docs参考.

404_16@

如果您使用该方法:

NSData dataWithContentsOfFile:(NSString *)path

options:(NSDataReadingOptions)readOptionsMask

error:(NSError * _Nullable *)errorPtr;

适当的选项取决于您打算如何处理数据;如Apple文档中所述:

> NSDataReadingUncached:指示文件不应存储在文件系统缓存中的提示. (对于一次读取和丢弃的数据,此选项可以提高性能.)

> NSDataReadingMappedIfSafe:指示文件应该映射到虚拟内存的提示,如果可能且安全.

> NSDataReadingMappedAlways:如果可能,提示将文件映射到. (如果两者都给出,则优先于NSDataReadingMappedIfSafe.)

有关mappedFiles的一些解释:只有在数据对象存在的时间内保证文件存在时才应使用.使用dataWithContentsOfFile:方法通常更安全.

使用mappedFiles选项时,该方法假定映射文件可从底层操作系统获得.映射文件使用虚拟内存技术来避免将文件页面复制到内存中,直到实际需要它们为止.

另一种方法:

NSData dataWithContentsOfFile:(NSString *)path;

相当于dataWithContentsOfFile:options:错误,没有给出选项.

结论

如果我们把它放在一起,你应该使用:

> dataWithContentsOfFile:如果您对数据没有特殊需求,或者内存使用问题.这是更安全的选择.

> dataWithContentsOfFile:options:NSDataReadingUncached选项错误,如果您只使用一次数据

> dataWithContentsOfFile:options:NSDataReadingMappedIfSafe选项出错,如果您不想立即加载整个文件,并且您确定该文件在NSData对象的整个生命周期内都存在.

> dataWithContentsOfFile:options:NSDataReadingMappedAlways选项的错误 – 与上面相同,但安全措施较少.

资料来源:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值