objective-c - iOS Efficiency 文件保存效率

标签 objective-c ios xcode filehandle

我当时正在开发我的 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/

相关文章:

IOS生产证书,我应该向其他方提供什么才能使用相同的证书?

ios - Swift 程序在 Xcode 上崩溃

ios - 拥有多个正在开发的 iOS 应用程序的组织应如何管理 iOS 分发证书?

ios - 更新 View Controller 中的 UIBarButtonItem

c++ - 将 C++ 对象添加到 Objective C 集合 (NSSet) 时出现问题

iOS - 在一个 TableViewController 下有 2 个表格 View 和其他元素

ios - Metal 性能调试

iphone - 如何在iphone 的iCarousel 上设置CustomFrame?

ios - AFNetworking在JSON响应键中添加引号

ios - UICollectionView 警告