我目前很难将数据保存到健康工具包中,我不确定问题是什么.我启用了运行状况工具包,并且在应用程序运行时已授予我的测试设备读写权限(一切正常,我能够无错误地查询运行状况工具包数据库).我正在使用Swift.
我用来保存的代码是:
hksaver.healthStore!.saveObjects(samples, withCompletion: {
(success: Bool , error: NSError!) -> Void in
if success { ... } else {
println("Failed to save. Error: \(error)")
}
Run Code Online (Sandbox Code Playgroud)
样本是一系列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)
Run Code Online (Sandbox Code Playgroud)
构造它时没有错误,所以我相信所有的值都是合适的.
当我运行时,我收到以下错误:
保存失败.错误:错误域= NSCocoaErrorDomain代码= 4097"操作无法完成.(Cocoa错误4097.)"(连接到名为com.apple.healthd.server的服务)UserInfo = 0x17047a0c0 {NSDebugDescription =连接到名为com的服务. apple.healthd.server}
我正在尝试向HealthKit写入~10000个值,虽然我无法找到任何限制(当我尝试写入50,000个值时发生了同样的错误).我试图用块来编写这个,但是在大约5次调用健康工具包后它开始失败(我假设有一个限制,以防止连续调用,虽然我没有看到任何文档,我已经看过) .
我已经尝试在错误代码下搜索,在整个错误下,并在我想到的所有内容下解释问题.我回来的唯一结果与HomeKit有关,而且往往是它没有被激活.但是在功能选项卡下我打开了HealthKit并且所有内容都经过检查标记,所以我不认为这是问题所在.
任何想法将不胜感激!