在 iOS 中将大量且频繁的数据写入文件?

Writing large and frequent data to a file in iOS?

我想每秒将数据保存到一个文件中。数据记录很简单,只是一个日期和数字,并想附加到文件中。这可能会持续一整天,因此文件最终会变得很大。

我不想阻塞主线程,也没有并发问题。它还必须能够在后台写入,而不是在前台写入应用程序。

实现这一目标的最佳方法是什么?

您可以为此使用 Core Data。每秒保存一个项目根本不会影响您的应用程序性能。使用 Core Data 将使您能够查询数据,因此如果您需要显示 24 小时数据的上午 10 点到上午 11 点的图表,这将不是问题。

后台数据采集能力取决于数据源。例如,您可以在后台收集位置更新。该系统提供了使这种能源效率更高的工具。检查 http://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

来自the documentation

The bluetooth-central Background Execution Mode

[...] While your app is in the background you can still discover and connect to peripherals, and explore and interact with peripheral data. In addition, the system wakes up your app when any of the CBCentralManagerDelegate or CBPeripheralDelegate delegate methods are invoked, allowing your app to handle important central role events, such as when a connection is established or torn down, when a peripheral sends updated characteristic values, and when a central manager’s state changes. [...]

要使用它,只需转到您的项目设置 > 您的目标 > 功能,启用后台模式并选中“使用蓝牙 LE 配件”