我目前很难将数据保存到医疗套件中,我不确定问题是什么。我启用了运行状况工具包,并且在应用程序运行时已授予我的测试设备读取和写入权限(一切正常,我能够无错误地查询运行状况工具包数据库)。我使用的是Swift。
我用来保存的代码是:
hksaver.healthStore!.saveObjects(samples, withCompletion: {
(success: Bool , error: NSError!) -> Void in
if success { ... } else {
println("Failed to save. Error: \(error)")
}
样本是一系列HKQuantity样本。它是通过追加' dataSample'来创建的。定义如下:
let dataPoint = HKQuantity(unit: units, doubleValue: measurement.dataPoint)
let dataSample = HKQuantitySample(type: quantityType,
quantity: dataPoint, startDate: measurement.startDate,
endDate: measurement.endDate, metadata: metadata)
构造它时没有错误,所以我相信所有的值都是合适的。
当我跑步时,我收到以下错误:
无法保存。错误:错误域= NSCocoaErrorDomain代码= 4097" 操作无法完成。 (可可错误4097。)" (连接到 服务名为com.apple.healthd.server)UserInfo = 0x17047a0c0 {NSDebugDescription =指向服务的连接 com.apple.healthd.server}
我试图向HealthKit写入~10000个值,虽然我还没有找到任何限制(当我试图写出50,000个值时发生了同样的错误)。我试图用大块的方式写这个,但在大约5次拨打健康套件后,它开始失败(我假设有一个限制可以防止连续通话,尽管我在任何文档中都没有看到任何内容我看过了。)
我已经尝试在错误代码下搜索,在整个错误下,并根据我能想到的一切来解释问题。我回来的唯一结果与HomeKit有关,而且往往是它没有被激活。然而,在功能选项卡下,我打开了HealthKit并且所有内容都经过检查标记,因此我认为这不是问题所在。
任何想法都将不胜感激!