我当时正在开发我的 iOS 应用程序,我的目标是保存我从互联网上一点一点收到的文件。我当前的设置是我有一个 NSMutableData
对象,并在收到文件时向其添加一些数据。收到最后一个“数据包”后,我将 NSData
写入文件,过程完成。我有点担心这不是理想的方式,因为移动设备的 RAM 有限,而且接收大文件会有问题。
我的下一个想法是实现一个 NSFileHandle
,以便在文件到达时将其保存到磁盘,而不是虚拟内存。
就速度和效率而言,您认为哪种方法在 iOS 设备上效果较好。我目前使用的是第一种 NSMutableData
方法。是否值得更改我的应用程序以使用 NSFileHandle
?
提前致谢, 古维
最佳答案
如果您正在下载的数据是无限的(即没有最大文件大小),那么值得您花时间在您的下载和保存方案中放入一些代码来从您的“NSMutableData
"对象到某个临界点的文件(例如 2K、10K、1Meg,等等)。然后当内存中的数据对象再次填满时附加到该文件。
由于 iDevice 没有物理硬盘驱动器(好吧,我指的是一个旋转的盘片,并且需要额外的能量来启动旋转和读写磁头),它也可能是值得的立即将这些字节直接写入文件句柄。我不相信它会在功耗方面花费任何额外费用。更大的功耗是在网络通信中(蜂窝通信是耗电大户,WiFi 连接略微耗电)。
关于objective-c - iOS Efficiency 文件保存效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10940813/